@object-ui/plugin-report 17.5.0 → 17.7.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 CHANGED
@@ -1,5 +1,2089 @@
1
1
  # @object-ui/plugin-report
2
2
 
3
+ ## 17.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - f7af637: Report display sites follow the display locale instead of the literal tag `en-US`
8
+ (objectui#10020).
9
+
10
+ Five display paths in this package handed `Intl` the literal BCP-47 tag `en-US` —
11
+ four branches of `formatValue` (`currency` / `currency_cny`, `currency_usd`,
12
+ `percent`, and the default thousand-separated branch) and the Excel cell formatter
13
+ behind `exportExcelWithFormulas`. That is the exact tag `useDisplayLocale`'s contract
14
+ in `@object-ui/i18n` names as the wrong answer, in as many words: *"Note this is
15
+ `'en'`, not `'en-US'`: the point of objectui#4033 is that `en-US` is not the world's
16
+ default."* A tenant that had configured `de-DE`, or a user reading the console in
17
+ Chinese, saw US grouping and decimal marks regardless — while the same package already
18
+ resolved that channel three times in `DatasetReportRenderer`.
19
+
20
+ **Additive, not breaking.** `formatValue` is a published export, so its new display
21
+ locale is an OPTIONAL third parameter and `exportExcelWithFormulas` takes an optional
22
+ `locale` on the options bag it already had. Every call that compiled before compiles
23
+ after, and omitting the argument formats in `'en'` — the display channel's own last
24
+ resort, which is neither `en-US` nor an absent tag.
25
+
26
+ **What that means for callers.** An optional parameter nobody passes would be the same
27
+ defect with a longer signature, so `ReportViewer` now resolves `useDisplayLocale()`
28
+ itself and threads it at all three of its call sites. If you call `formatValue` or
29
+ `exportExcelWithFormulas` from your own code, pass the locale you render in —
30
+ `useDisplayLocale()` in React, and for a non-React caller the tag your session
31
+ resolved. `exportExcelWithFormulas` cannot read the channel itself: it is not a
32
+ component, and a display locale is a property of the session rather than of the
33
+ authored report schema, so its caller is the only place the tag can come from.
34
+
35
+ Threading a tag also introduces a hazard a literal never had — a tenant-configured tag
36
+ can be malformed (`en_US`, underscore instead of hyphen, makes `Intl` throw
37
+ `RangeError`), and these calls sit inside a cell render. A malformed tag now degrades
38
+ to the same last resort rather than taking the report down. It deliberately does NOT
39
+ degrade to a dropped tag, which would mean the machine's locale — the separate defect
40
+ shape tracked on objectui#9909, still present in this package's HTML export header and
41
+ deliberately not merged into this change.
42
+ - 9d9ed54: refactor(plugin-report)!: retire the `spec-report` node type key; a spec report is embedded as `{ "type": "report", "report": { … } }` (objectui#11440)
43
+
44
+ **BREAKING (authoring):** the plugin no longer registers `spec-report` (and with it `plugin-report:spec-report`), an alias of `report` on the same `ReportRenderer` that carried the report under a `report` member. `ReportRenderer` now unwraps that member on a `report` node, and only there: `report` is the one spelling, with no alias fallback. `objectui validate` refused a `spec-report` node at `type`, and so did the strict authoring face. A node authored `type: "spec-report"` now renders the "Unknown component type" panel.
45
+
46
+ The `report` registration publishes `report` as an input, so the `sdui-parser` manifest and the designer offer it. `@object-ui/types/zod`'s `ReportNodeSchema` declares the same member (`.changeset/11440-report-node-wrapper.md`). The README and `content/docs/plugins/plugin-report.mdx` teach the `report` spelling and list two registered types, `report` and `report-viewer`.
47
+
48
+ Migration:
49
+
50
+ - `{ "type": "spec-report", "report": { … } }` → `{ "type": "report", "report": { … } }`, with the same `report` member. Measured with a dataset-bound report (`name`, `label`, `type: "summary"`, `dataset`, `rows`, `values`): the FROM document is refused with `invalid_union` at `type` by `objectui validate` and by the strict face; the TO document validates on both.
51
+ - A pre-9.0 stored report (the `objectName` / `columns` query form) under `report` still renders through the presentation bridge, but neither face accepts it in the TO document: the `@objectstack/spec` `ReportSchema` the member takes by reference refuses it under `report` (`objectName` as an unrecognized key, `invalid_type` at `report.columns.0`). Migrate it to a dataset binding (ADR-0021) to validate.
52
+
53
+ **Clause-②: yes** — a registration leaves the runtime (narrowing), released as `minor` with this banner.
54
+ - 64dae8e: Six user-visible fixes across the maker surface, the assistant rail and the
55
+ dataset captions.
56
+
57
+ **The maker's start chips now promise only what ADR-0112 v1 builds
58
+ (cloud#1984).** Two of the five asked for automation the first version has no
59
+ flows or actions for — the ticket chip said 「状态流转」, the inventory chip said
60
+ 「低库存预警」 — and the measured behaviour was not a refusal but a silent
61
+ degrade: a status kanban and a low-stock view. The chip promised an alert and
62
+ delivered a page. All five are reworded in all ten packs (and in the call-site
63
+ `defaultValue` fallbacks, which are a second copy of the same strings) to ask
64
+ for objects, fields, views, pages, dashboards and sample data, keeping each a
65
+ real business scenario — the ticket chip now asks for a status field and a board
66
+ grouped by it, the inventory chip for a view that filters below the reorder
67
+ point. A note beside the keys says to revert when v2 re-adds flows.
68
+
69
+ **Five newer AI tools get their step labels (objectui#7481).** A zh conversation
70
+ read `✓ Get authoring rules 已完成` between 「读取元数据结构」 and 「列出对象」:
71
+ `get_authoring_rules` (cloud#1837), plus `load_tools`, `open_record`,
72
+ `test_flow` and `toggle_flow`, are registered by the cloud AI runtime but are
73
+ newer than the pinned spec's tool registry, so they had no `chatbot.tool.*`
74
+ entry in any pack and fell through to the English title-caser.
75
+
76
+ **The assistant rail follows the thread when you send (objectui#7480).** The
77
+ rail and the full-page maker are the same component; what differs is width. A
78
+ reply that still ends on screen in the wide column runs two or three times
79
+ taller in a ~360px rail, so `StickToBottom`'s lock is escaped by the time the
80
+ user types and the new bubble, the tool steps and the streaming answer all land
81
+ below the fold. Every send path now re-arms the lock — including the plan-card
82
+ "Build it" and 确认修改 approvals, whose own code comments already named this
83
+ miss. Message APPENDS deliberately do not, so a user reading back through the
84
+ thread mid-answer is never yanked to the bottom.
85
+
86
+ **Console toasts move off the assistant composer (objectui#7482).** 「客户更新
87
+ 成功」 sat on the ChatDock composer's send button and stayed there. One defect,
88
+ two symptoms: `apps/console` pinned the toaster to `bottom-right` — an override
89
+ that predates ADR-0057 P3a — so a toast both covered the button and, because
90
+ sonner pauses a toast's dismiss timer while the pointer is inside the toaster
91
+ region, never got to run its 4s timer with a pointer resting on the composer
92
+ underneath. The override is gone; the console takes `ConsoleToaster`'s own
93
+ documented top-right anchor, and the 4s success duration is now pinned.
94
+
95
+ **Built-in aggregate captions follow the locale everywhere (objectui#7534).**
96
+ objectui#7258 taught `buildChartSeries()` to resolve a server-minted default
97
+ measure through the locale map, so a chart legend read `计数` while the table
98
+ beneath it, the KPI caption, the pivot header and the dataset preview still
99
+ printed the server's hard-coded English `Count`. `buildDatasetFieldHelpers()`
100
+ takes the same optional `builtinAggregateLabels`, resolving through the one
101
+ `resolveMeasureLabel` order, and the five call sites pass it. Omitting the
102
+ argument reproduces the previous output byte for byte, and an author-declared
103
+ measure still keeps its own label verbatim (objectui#4106).
104
+
105
+ **The activity feed stops asking for an object the environment does not have
106
+ (objectui#7476).** A tenant environment has no `sys_activity`, so every page
107
+ load issued a request that 404'd. Everything downstream was already correct —
108
+ the adapter memoizes the missing collection, its logger demotes the failure, the
109
+ feed retires as an ANSWER and the panel renders its earned empty state — so what
110
+ is left is the request itself, and `data-objectstack` states the rule for it:
111
+ the cure for a doomed request is not issuing it. New `useObjectPresence` reads
112
+ the object registry the shell loads for the nav anyway; only a registry that has
113
+ ANSWERED and lists other objects without this one skips the read. Every
114
+ uncertainty — no provider, empty registry, still loading, errored — reads as
115
+ before, because a wrong skip would cost a real deployment its feed.
116
+ - 0ea7054: Remove 37 runtime dependencies that no file in the declaring package consumes, and gate
117
+ the direction so the next one cannot land (objectui#8198).
118
+
119
+ `check:phantom-deps` judges imports that are not declared; nothing judged the reverse,
120
+ so a declaration could outlive its last consumer indefinitely. That is what happened to
121
+ `recharts` in `@object-ui/components` after objectui#7397 deleted its only importer — it
122
+ was removed by hand on objectui#7625, and nothing would have reported the next one. The
123
+ new `pnpm check:unused-deps` asks the reverse question over `dependencies` and
124
+ `optionalDependencies` of every released package.
125
+
126
+ **Potentially breaking, for consumers relying on hoisting.** Nothing these packages ship
127
+ changes: their Vite `external` predicates are path-based and never read `dependencies`,
128
+ so no built artifact moves. What changes is the install graph — a project that imports
129
+ one of the removed packages while depending only on the ObjectUI package that used to
130
+ drag it in will no longer resolve it. Declare it directly; that is the correct
131
+ dependency edge in either case. The removals, by package:
132
+
133
+ - `@object-ui/plugin-designer`: `@dnd-kit/core`, `@dnd-kit/sortable`, `@dnd-kit/utilities`, `@object-ui/fields`
134
+ - `@object-ui/plugin-chatbot`: `react-markdown`, `react-syntax-highlighter`, `remark-gfm` (and the orphaned `@types/react-syntax-highlighter`)
135
+ - `@object-ui/plugin-report`: `@object-ui/plugin-grid`, `clsx`, `react-i18next`, `tailwind-merge`
136
+ - `@object-ui/plugin-map`: `@objectstack/spec`, `lucide-react`, `zod`
137
+ - `@object-ui/runner`: `class-variance-authority`, `clsx`, `tailwind-merge`
138
+ - `@object-ui/core`: `lodash`, `zod`
139
+ - `@object-ui/layout`: `clsx`, `tailwind-merge`, and `react-dom` — which it pinned at an exact version in `dependencies` while also declaring it as a peer range, i.e. a library hard-depending on the renderer it asks its host to supply
140
+ - `@object-ui/plugin-dashboard`: `clsx`, `tailwind-merge`, and the same `react-dom` defect
141
+ - `@object-ui/plugin-ai`: `@object-ui/react`, `clsx`, `tailwind-merge`
142
+ - `@object-ui/fields`: `clsx`, `tailwind-merge`
143
+ - `@object-ui/console`: `@object-ui/react-runtime`, `sucrase`
144
+ - `@object-ui/auth`: `@object-ui/types`
145
+ - `@object-ui/plugin-calendar`: `@object-ui/fields`
146
+ - `@object-ui/plugin-editor`, `@object-ui/plugin-markdown`: `@object-ui/react`
147
+ - `@object-ui/react`: `react-hook-form`
148
+
149
+ Every one was verified by a whole-package grep before removal — the name appeared nowhere
150
+ under the package but its own manifest and CHANGELOG — and the whole workspace builds,
151
+ type-checks and tests green afterwards.
152
+ - 80da129: A dataset-bound report whose `chart.title` is an inline locale map now draws its heading
153
+ instead of drawing none (objectui#9150).
154
+
155
+ `@objectstack/spec` types `ReportChartSchema.title` as `I18nLabel` — a plain string OR an
156
+ inline locale map — so `{ "chart": { "type": "bar", "title": { "en": "Pricing", "zh-CN": "定价" } } }`
157
+ is authored surface the contract accepts. `DatasetReportChart` paints the report chart's
158
+ heading itself, as its own `h3`, and read the value back through
159
+ `typeof chart.title === 'string'`. The map arm failed that test, the local `title` became
160
+ `undefined`, and the `{title ? … : null}` guard skipped the element entirely: the report
161
+ drew **no heading at all**, in every language, with no diagnostic.
162
+
163
+ Note the shape, because it is the same one objectui#9038 described and not the sibling
164
+ objectui#8943: the value was not resolved badly, it was not resolved at all. There was no
165
+ heading to compare against a locale, so no locale-comparison check could see it, and an
166
+ author who wrote spec-legal metadata saw a chart that looked as though it had simply been
167
+ given no title.
168
+
169
+ The read site now resolves through `pickLocalized`, this repo's one resolver for the
170
+ union — the form already used a few lines above in the same file for an authored
171
+ `series[].label`, against the same `useObjectTranslation().language`. Both branches that
172
+ paint the heading (the series chart and the single-value metric) read one binding, so one
173
+ change covers both, and both are pinned.
174
+
175
+ Why this is `minor` and not `patch`. Every publishable package here sits in one `fixed`
176
+ group, so `major` is unavailable by policy and this repo ships behaviour-visible changes
177
+ as `minor`. This one is behaviour-visible on a **published** package: stored documents
178
+ that render nothing today start rendering an `h3`, and an author who worked around the
179
+ absence by authoring a separate heading of their own will now see two. That is a change
180
+ to what the renderer paints for metadata it already accepted, not an internal repair. The
181
+ direct sibling objectui#9038 — same union, same defect shape, same round — shipped
182
+ `minor` for exactly this, and one release should not classify the two differently.
183
+
184
+ What did **not** change:
185
+
186
+ - A plain-string `title` renders byte-identically, in every language. It is the lit
187
+ control in the new pins, and if it had moved the repair would have overshot.
188
+ - The chart component is still handed **no** `title`. This renderer drops it from the
189
+ lowered chrome on purpose, so the chart cannot draw a second heading inside its own
190
+ frame; that pin is kept and extended to the map arm.
191
+ - The resolution policy is not re-decided here. `pickLocalized`'s documented chain (exact
192
+ tag, base language, region-qualified sibling, `default`, `en`, first entry) is what a
193
+ map with no limb for the active language falls back along, so it draws another limb
194
+ rather than vanishing — `default` outranks `en`, pinned, so the fallback is demonstrably
195
+ the resolver's chain and not an ad-hoc "else English". Only a map carrying no usable
196
+ string at all resolves to a miss, and that still draws no heading rather than an empty
197
+ one.
198
+
199
+ The neighbouring read sites objectui#9038 ledgered by name are unchanged, and that ledger
200
+ is updated to record this one as resolved. The remaining entry — a series `label` and an
201
+ axis `title` still taking `labelText`'s first-string-wins pick (objectui#4020) — stays
202
+ open on purpose.
203
+ - a9d97be: Close the numeric-falsy `SchemaNode` slot class: a slot may no longer guard itself
204
+ (objectui#9162, triage ruling 2026-09-12).
205
+
206
+ **What leaked.** `{schema.footer && <CardFooter>…</CardFooter>}` does not evaluate to
207
+ `false` when the slot is falsy — it evaluates to the **slot**, and React renders
208
+ numbers. A node slot's published zod face carries a `z.number()` arm
209
+ (`nodeUnionOptions`, `packages/types/src/zod/base.zod.ts`), so `footer: 0` is **legal
210
+ authored input**, and it painted a stray `0` into the DOM. `NaN` painted three
211
+ characters. The `&&` also short-circuits, so `renderChildren`'s own
212
+ `if (!children) return null` first leg was never reached — which is why the
213
+ objectui#8908 bridge repair could not cover any of these sites.
214
+
215
+ **Why a class fix and not N instance fixes.** This class was patched one instance at a
216
+ time three times — objectui#8331 (`DataTableSchema.emptyAction`), objectui#9033
217
+ (`header-bar`'s `rightContent`), and then objectui#9162's census found eleven more,
218
+ because objectui#9033's grep was keyed on the spelling of the **right** operand while
219
+ the trap depends only on the **left** one. Nineteen guards across eight files are
220
+ repaired here, and the construct that permits them is now refused mechanically.
221
+
222
+ **The one spelling, and the gate.** `renderChildren(slot)` is the guard for a bare
223
+ slot; the new `renderNodeSlot(slot, render)` is the guard for a slot wrapped in chrome
224
+ that must disappear with it. Both route through one exported predicate,
225
+ `isEmptyNodeSlot`. The new lint rule `object-ui/no-bare-node-slot-guard` refuses the
226
+ `&&` spelling, deriving its slot set per file from the file's own text — an expression
227
+ is a node slot there if that file hands it to `renderChildren`, `renderNodeSlot`,
228
+ `toRenderableSchema` or `<SchemaRenderer schema={…}>`. A twelfth slot is rendered
229
+ through one of those, so it is covered the moment it is written, with no list to keep
230
+ up to date.
231
+
232
+ **Why `minor`.** Two reasons, and neither is a contract break.
233
+
234
+ 1. `@object-ui/components` gains public API: `renderNodeSlot` and `isEmptyNodeSlot` are
235
+ new exports. A new export is a `minor` on its own.
236
+ 2. Published renderers change what they emit for two authored inputs. A node slot
237
+ authored `0` / `-0` / `NaN` stops painting that character — that is the defect, and
238
+ no author asked for it. A node slot authored `[]` no longer renders its empty chrome
239
+ (an empty `CardHeader` / `CardContent` / `CardFooter` / `DialogFooter` /
240
+ `SheetFooter` / `DrawerFooter` / `TableFooter`, or `plugin-detail`'s wrapping
241
+ `div`); the chrome now appears and disappears with its content. Measured across
242
+ `examples/`, `content/` and `apps/`: **zero** authored node slots carry a numeric
243
+ value, and the single authored `"children": []` is on `div`, which never had the
244
+ `&&` guard and is unaffected.
245
+
246
+ ⛔ Deliberately **not** marked `**BREAKING**`: no authored input stops being accepted,
247
+ no export is removed, no key stops being read, and objectui#7105 is respected — the
248
+ declarations are untouched and node slots still relax the renderer. An author who
249
+ genuinely wants the character `0` writes `"0"` or a `text` node, both unchanged.
250
+ - a78cd37: Dates and numbers across the console and the plugins format in the session's
251
+ display locale instead of the machine's (objectui#9909).
252
+
253
+ Every one of these faces handed `Intl` — directly, or through a formatter called
254
+ without one — either no locale tag or an explicit `undefined`, which is not "the
255
+ user's locale": it is the locale of the machine the browser runs on, which is
256
+ neither of this repository's two locale channels.
257
+ A German or Spanish session therefore read, beside a translated label, a date or
258
+ an amount grouped and decimal-marked the machine's way — and an amount with
259
+ inverted separators does not read as unformatted, it reads as a different
260
+ number. They now go through `useDisplayLocale()` (tenant regional default, then
261
+ the active UI language, then `'en'`), and a plain helper takes that tag from its
262
+ caller. The surfaces:
263
+
264
+ - **`@object-ui/fields`** — `GridField`'s numeric and currency cells (list mode
265
+ and computed columns) and both total cells. The same cell helper's date branch
266
+ already used the display locale, so a single grid row read two conventions at
267
+ once.
268
+ - **`@object-ui/plugin-charts`** — ISO-date x-axis ticks, compact y-axis ticks,
269
+ the single-value face, spec `format` strings and the tooltip value.
270
+ - **`@object-ui/app-shell`** — the organization invitations, members and
271
+ accept-invitation dates; marketplace version dates; the AI conversation row's
272
+ older-than-a-week date and its tooltip; the build-debug token count; the
273
+ record approvals timeline; and the metadata-admin audit, history, external
274
+ datasource snapshot, schema-browser row estimate, flow-run start and job
275
+ next-fire faces. The audit, history and flow-run panels format these in the
276
+ DISPLAY locale, not in the `locale` prop they take for their UI strings
277
+ (`AuditPanel` defaults that prop to `'en-US'`; `HistoryPanel` and
278
+ `FlowRunsPanel` leave it optional).
279
+ - **`@object-ui/console`** — the approvals inbox's timestamp tooltips, amounts
280
+ and payload summary; the audit log's timestamp column; the flow runs table and
281
+ its run detail.
282
+ - **`@object-ui/components`** — the export dialog's record counts and the debug
283
+ panel's event times.
284
+ - **`@object-ui/plugin-form`** — the analytics submission count, the
285
+ master-detail subtotal / tax / total stack and the edit-conflict dialog's
286
+ "their save" time.
287
+ - **`@object-ui/plugin-chatbot`** — the approvals inbox's past-30-days date and
288
+ the times stamped on local-mode chat messages (the user's and the
289
+ auto-response).
290
+ - **`@object-ui/plugin-dashboard`** — the record-count badge, and the currency
291
+ and date-format branches of `renderFieldValue`, which was handed the display
292
+ locale and spent it only on its percent branch.
293
+ - **`@object-ui/plugin-grid`** — the record-detail panel's inferred currency
294
+ value and the mobile card's amount line, siblings of date cells already on the
295
+ display locale.
296
+ - **`@object-ui/plugin-designer`** — `VersionHistory`'s version times.
297
+
298
+ A host that mounts one of the components that newly read the display locale with
299
+ NO `I18nProvider` now gets react-i18next's once-per-module `NO_I18NEXT_INSTANCE`
300
+ notice in the console on the first such mount; the faces still render, in the
301
+ channel's `'en'` last resort, and mounting an `I18nProvider` (as the console
302
+ does) avoids the notice.
303
+
304
+ **Additive API** (nothing that compiled before stops compiling):
305
+
306
+ - `@object-ui/types`: `ValidationContext` gains an optional `locale`. At this
307
+ change, the `@object-ui/core` validation engine prints the `date_min` /
308
+ `date_max` bound in it; omitted, `Intl` follows the runtime default, as
309
+ `formatDisplayNumber` already declares for a caller with no locale in hand.
310
+
311
+ ⚠️ **Dated note, 2026-09-25 — that engine (`ValidationEngine`) is removed from
312
+ `@object-ui/core` by a later change; `ValidationContext.locale` stays declared in
313
+ `@object-ui/types`, and at that change nothing in `@object-ui/core` reads it —
314
+ objectui#7659.**
315
+
316
+ ⚠️ **Dated note, 2026-09-27 — `ValidationContext` itself is removed from
317
+ `@object-ui/types` by a later change, with the rest of the Phase 3.5
318
+ validation types it belonged to, so the `locale` member this entry adds no
319
+ longer exists — objectui#10719.**
320
+ - `@object-ui/plugin-report`: `exportReport`, `exportAsHTML` and `exportAsPDF`
321
+ take a trailing optional `locale` for the exported file's "Generated:" time,
322
+ and `LiveExportOptions` gains an optional `locale` that `exportWithLiveData`
323
+ forwards. Omitted, the time uses the display channel's own last resort
324
+ (`'en'`), never the machine's locale. `ReportViewer` passes the session's
325
+ display locale. The locale is deliberately NOT a `ReportExportConfig` member:
326
+ that type is authored report metadata, and a display locale belongs to the
327
+ session.
328
+
329
+ **One census, repository-wide.** `plugin-detail`'s machine-locale census pin
330
+ (objectui#9786) is now a single test, `machineLocaleCensus-9909.test.ts` in
331
+ `@object-ui/i18n`, covering every workspace package whose manifest depends on
332
+ `@object-ui/i18n`. It refuses any call site that passes nothing, `undefined`,
333
+ the `'default'` pseudo-tag (a subtag no locale data answers, so `Intl` resolves
334
+ it to the machine's locale) or a hard-coded tag, unless the site is declared
335
+ with its reason — for example the `catch` fallback for a tag `Intl` itself
336
+ rejected, or an ISO formatter feeding `<input type="date">`. Each declared site
337
+ is counted exactly, so deleting one without its entry is refused too. The
338
+ per-package pin it replaces is deleted. The runtime tripwire that observes the
339
+ argument each locale-taking call (`Intl` constructors, `Date` and `Number`
340
+ `toLocale*`) actually receives moved into the private `@object-ui/test-support`
341
+ package, and every surface above is pinned with it: the same data under two
342
+ declared locales must render differently, NO locale-taking call may receive the
343
+ machine's locale (nothing, `undefined` or `'default'`), and the surface's own
344
+ calls must receive the declared tag. A call carrying another declared tag, such
345
+ as the `'en'` of the session's UI language, is tolerated by design: only the
346
+ machine's locale is the defect.
347
+
348
+ ### Patch Changes
349
+
350
+ - 8cedb0d: The two declared display-locale contracts now each name the caller they govern,
351
+ and each points at the other (objectui#10098). This is documentation only: no
352
+ module's behaviour moves.
353
+
354
+ - `DisplayNumberFormatOptions.locale` (`@object-ui/core`): leaving the tag
355
+ `undefined` means the runtime default, and that rule is written for a non-React
356
+ display caller with no tag in hand. For that caller the viewer's own environment
357
+ is the honest locale for a user-facing display. A malformed tag lands in the
358
+ same place through `formatDisplayNumber`'s retry.
359
+ - `useDisplayLocale` (`@object-ui/i18n`): its concrete `'en'` last resort, kept for
360
+ determinism, is the rule for a React renderer whose provider chain yields no tag
361
+ at all, not a rule for every caller without a tag.
362
+ - `formatNumberInDisplayLocale` (`@object-ui/plugin-report`): the note on its
363
+ malformed-tag retry no longer calls the dropped-tag retry behind
364
+ `formatDisplayNumber` a wrong answer. Each retry follows its own package's
365
+ declared contract.
366
+
367
+ Read alone, either docblock used to look like a rule for every caller, and each
368
+ contradicted the other. The new wording reaches each package's published type
369
+ declarations, which is why this is declared as a patch rather than left
370
+ undeclared.
371
+ - 256b4c9: A filter refused as malformed (`INVALID_FILTER`) no longer throws out of render or out of a click
372
+ handler at the sites that merge filters there. That holds whether this layer's filter converter
373
+ refused it or, at the drill seam, the spec's own `parseFilterAST`. Each site now surfaces the
374
+ refusal the way its siblings already do (objectui#10789). The filter stays **refused**: nothing
375
+ that was refused is accepted, and no site falls back to "no filter".
376
+
377
+ - **`ElementDataSourceGate` / `useElementDataSource`** (`@object-ui/react`): the gate's merge of
378
+ the component's `filter` with the composed binding, and the merge of a saved view's filter
379
+ with the binding's own, lowered through the throwing converter inside render. A refused
380
+ filter from either now makes the binding `missing` with a new optional `filterRefusal` on the
381
+ result (`error` carries its message). The gate then draws, in place of the block, the
382
+ malformed-filter notice the wrapped blocks draw: `view.malformedFilter`, naming the refused
383
+ operator or field. `element:record_picker`, which reads the same hook, shows its
384
+ configuration-error panel with the refusal.
385
+ - **`PeoplePicker` / `RecordPickerDialog`** (`@object-ui/fields`): the recents merge and the
386
+ dialog's `mergedFilter` lower through `toFilterNodeSafely`; a refusal is shown in the picker's
387
+ existing error state and no query runs without the filter.
388
+ - **Drill-downs** (`ObjectChart`, `ObjectPivotTable`, `DatasetWidget`, `DatasetReportRenderer`):
389
+ a widget or report filter refused at the drill seam made the drill click throw. The converter
390
+ refuses some (a spec `$not`, say). The spec's `parseFilterAST` refuses others, such as a scalar
391
+ on a list operator in either dialect: `[['stage', 'in', 'won']]` or `{ stage: { $in: 'won' } }`.
392
+ The drill is now not opened or emitted (never with the scope dropped), and the refusal is logged
393
+ with `console.warn`, naming the operator. `composeDrillFilter` (`@object-ui/core`) now throws
394
+ one refusal type: the spec's `INVALID_FILTER` error is re-raised as a `FilterOperatorError` with
395
+ its message and the same `INVALID_FILTER` / 400 envelope, and any other error passes through
396
+ unchanged.
397
+ - **`ListView` export** (`@object-ui/plugin-list`): the server export builds its filter inside
398
+ its `try`, so a refusal is named in the export menu instead of escaping the click.
399
+ - **`convertFiltersToAST`** (`@object-ui/core`): an `$or` member that is the TRUE identity no
400
+ longer stops the members after it from being read. `{ $or: [{}, { a: {} }] }` is now refused
401
+ like `{ $or: [{ a: {} }, {}] }` already was, instead of answering TRUE (every row); a TRUE
402
+ disjunct beside members that lower still absorbs its `$or`.
403
+ - ed76b1b: fix(plugin-report,plugin-form): a dataset report and an authored-parent `record:line_items` panel re-read on the data-invalidation bus
404
+
405
+ The one fetch every dataset report presentation runs through (the tabular and
406
+ summary table, the matrix, the embedded chart, each joined block) now names the
407
+ `useDataInvalidation` nonce for the dataset's base object, the object the
408
+ query's answer names. So a write declared on the bus (`notifyDataChanged`, as a
409
+ page action over raw HTTP does) re-reads a `report` / `spec-report` block in
410
+ place: the rows on screen stay drawn until the answer replaces them, where
411
+ before the block dropped back to "Running report…". The `spec-report` a
412
+ drill-down drawer opens for `drillDown.report` re-reads the same way. A report
413
+ whose answer names no object does not subscribe. A re-read that fails shows the
414
+ error in place of the rows and keeps listening, so the next such write re-reads
415
+ the report; a first load that fails, or a new selection, listens to nothing
416
+ until an answer names its object.
417
+
418
+ The child-row read of `record:line_items` now names the nonce for its child
419
+ object, so a panel with an authored `parentId` / `recordId` (one a stored page
420
+ holds with no record context) re-reads its lines after such a write. A re-read
421
+ of the lines on screen keeps the grid drawn, taking no input until the answer
422
+ lands. While the panel holds unsaved edits the re-read is held, and the save's
423
+ reload carries it, as for any other re-read of this panel.
424
+
425
+ Before, both refreshed after such a write only when their host remounted them,
426
+ and `PageView` is about to stop doing that (objectui#10519).
427
+
428
+ ⚠️ **Dated note, 2026-10-02 — `spec-report` is retired — objectui#11440.**
429
+ Later in this same release `@object-ui/plugin-report` stopped registering `spec-report`, an alias of
430
+ `report`, and the drill-down drawer renders `drillDown.report` as `{ type: 'report', report }`. So
431
+ "a `report` / `spec-report` block" above now reads a `report` block, and "The `spec-report` a
432
+ drill-down drawer opens" reads the `report` node it opens; both re-read the same way.
433
+ `.changeset/11440-retire-spec-report.md` states what ships. The rest of this entry is kept as the
434
+ reading of this change.
435
+ - a60539b: fix(plugin-dashboard,components,plugin-report): three more read sites show the day a stored date-only value names, in every zone (objectui#10844)
436
+
437
+ Each read below parsed a date-only `YYYY-MM-DD` string with the engine's own `Date`
438
+ parse, which reads it as UTC midnight. West of UTC that is the evening before, so
439
+ each face showed the previous day. Each now reads the value through `toDisplayDate`
440
+ (`@object-ui/core`), which rebuilds a date-only string at local midnight of the day it
441
+ names. For a real day, a viewer in UTC or east of it sees no change.
442
+
443
+ - **Dashboard date filter, custom range.** The range calendar highlighted the day
444
+ before each stored bound and could open on the previous month: clicking 15 Sep stored
445
+ `2026-09-15` and then highlighted the 14th. It now highlights and opens on the stored
446
+ days. A bound naming a day its month does not have (`2026-02-30`) no longer rolls
447
+ into March: it selects no day, and a `from` like that opens the calendar on today, as
448
+ an unparseable `from` already did.
449
+ - **`date-picker` renderer, an ISO string `value`.** An authored or bound
450
+ `value: '2024-01-15'` was labelled "January 14th, 2024" and selected the 14th. It now
451
+ labels and selects the 15th. Only a date-only string naming a real day is read this
452
+ way: a `Date`, a date-time string and any other string reach date-fns exactly as
453
+ before. So an unparseable string still makes the trigger's `format` throw, as it did
454
+ before, and a date-only string naming a nonexistent day is still rolled forward
455
+ rather than refused, because refusing it would make `format` throw where it rendered
456
+ before.
457
+ - **Report cell date face (`formatValue`).** The `yyyy-MM-dd` face `ReportViewer` gives
458
+ an untyped ISO-looking value and an aggregated column read `2026-09-14` for a stored
459
+ `2026-09-15`. It now reads `2026-09-15`. A value naming a nonexistent day now renders
460
+ as the raw stored string, this face's existing answer for an unparseable value,
461
+ instead of a rolled-forward day.
462
+
463
+ A date-time value (one with a time part) still renders in the viewer's zone at every
464
+ site.
465
+ - 49f7672: A `matrix` report that declares `columns` now draws its declared `chart` below the cross-tab
466
+ (objectui#10964). `ReportSchema` has always accepted a matrix report carrying both `columns` and
467
+ a `chart`, but the renderer's cross-tab branch returned before the chart was read, so the chart
468
+ parsed and was never drawn. It binds the way the summary report's chart does: `chart.xAxis` names
469
+ a dataset dimension (a `rows` or a `columns` dimension of the matrix) and `chart.yAxis` a dataset
470
+ measure, plotted from the chart's own dataset query. Summary, tabular and matrix-without-`columns`
471
+ reports keep the chart above their table, as before.
472
+
473
+ The notice an out-of-spec chart type shows no longer says the table is "below" it, since on a
474
+ matrix report the table sits above the notice.
475
+ - 39f4309: Published typings from every `vite-plugin-dts` package now carry an explicit extension on
476
+ every relative specifier, and a type error in the declaration build now fails the build
477
+ instead of being printed and ignored (objectui#5439, objectui#5483).
478
+
479
+ **Consumers on `moduleResolution: nodenext` or `node16` may see NEW type errors, and that
480
+ is the fix working.** These packages re-export mostly through NAMED re-exports —
481
+ `export { useObjectChat } from './useObjectChat'`. TypeScript could not follow the
482
+ extensionless hop, but it still DECLARED the name, so the symbol resolved to a silent
483
+ `any`. Nothing errored; consumers simply got no types. With the extension emitted, the
484
+ symbol carries its real type, and any call site that was relying on the `any` now type
485
+ checks for the first time. This is the mode that produced the 21 residual `TS7006` on
486
+ `@object-ui/app-shell` reported against objectui#5365 — a type hole that opened quietly,
487
+ unlike objectui#5365's own `export * from './ui'` packages where the same defect surfaced
488
+ immediately as `TS2305: has no exported member`.
489
+
490
+ 410 extensionless relative specifiers across 19 packages were emitted before this change;
491
+ the count is now 0 in all 22 packages that build typings through `vite-plugin-dts`.
492
+ `@object-ui/fields` was already clean — its sources write explicit `.js` specifiers — and
493
+ is wired so it stays that way.
494
+
495
+ The second half changes no emitted output today: 22/22 packages built green unmodified, so
496
+ making the declaration step's exit code honest turns nothing red. It changes what a FUTURE
497
+ regression does — print and exit 0, versus fail the build.
498
+ - 854222c: `@object-ui/plugin-report` now registers its three components under namespace
499
+ **`plugin-report`**, the spelling its consumers already declare (objectui#6416).
500
+
501
+ It used to register `report`, `spec-report` and `report-viewer` under namespace
502
+ `report`, while `apps/console` declared the lazy stubs for the same three short
503
+ names under `plugin-report` and the CLI's known-type whitelist shipped the
504
+ `plugin-report:*` spellings as renderable. Two things followed from the
505
+ disagreement:
506
+
507
+ - **`plugin-report:report`, `plugin-report:report-viewer` and
508
+ `plugin-report:spec-report` could never be satisfied.** `Registry.register`
509
+ clears the lazy stub for the type IT registers, and that type was
510
+ `report:report`, so those three stubs were never cleared and no component was
511
+ ever stored under them: `get('report', 'plugin-report')` returned `undefined`
512
+ and `hasLazy('report', 'plugin-report')` stayed `true` forever. A schema
513
+ authored with any of the three whitelisted keys resolved to nothing — the
514
+ gate handed authors a green light for a key the runtime could not satisfy.
515
+ - **The bare `report` key was claimed twice under two different namespaces.**
516
+ `Registry.register` and `Registry.registerLazy` share the
517
+ `meta?.namespace && !meta?.skipFallback` branch, so what bare `report`
518
+ *declared* depended on whether the plugin chunk had loaded yet — the
519
+ objectui#6353 shape.
520
+
521
+ **No authored metadata changes.** The direction was chosen by measurement:
522
+ nothing in this repository, and nothing in the sibling `objectstack` checkout,
523
+ authors a `report:*` spelling (0 hits), while the bare spellings are authored in
524
+ 48 places. `type: 'report'`, `type: 'spec-report'` and `type: 'report-viewer'`
525
+ resolve exactly as before; the three unreachable `report:*` keys are retired and
526
+ the three `plugin-report:*` keys now name real components for the first time.
527
+
528
+ `packages/cli/src/utils/known-schema-types.ts` is regenerated from the
529
+ registrations, dropping `report:report`, `report:report-viewer` and
530
+ `report:spec-report`.
531
+
532
+ Two pins are the half that outlives the fix:
533
+ `packages/plugin-report/src/__tests__/report-bare-key-ownership.test.ts` replays
534
+ this package's real declared metadata and a console-shaped lazy stub into a
535
+ fresh `Registry` in **both** registration orders, checking the bare key's
536
+ declared namespace after every step, so order- and phase-independence are
537
+ properties under test rather than properties of the file the test imports.
538
+ `scripts/__tests__/report-namespace-agreement-6416.test.ts` re-derives both
539
+ sites from source and fails if the plugin, the console stubs and the generated
540
+ whitelist ever disagree again.
541
+
542
+ ⚠️ **Dated note, 2026-10-02 — `spec-report` is retired — objectui#11440.**
543
+ Later in this same release `@object-ui/plugin-report` stopped registering `spec-report`, and with it
544
+ `plugin-report:spec-report`; the console dropped its lazy stub, and `known-schema-types.ts` no longer
545
+ lists either key. So the package registers two components under `plugin-report`, not three, and
546
+ "`type: 'spec-report'` … resolve exactly as before" and "the three `plugin-report:*` keys now name
547
+ real components" above no longer hold for `spec-report`: a node of that type resolves to nothing.
548
+ `report` and `report-viewer` resolve as this entry says. `.changeset/11440-retire-spec-report.md`
549
+ states what ships. The rest of this entry is kept as the reading of this change.
550
+ - 47547d0: Localize the server's built-in aggregate measure titles on dataset charts
551
+ (objectui#7258 — consumer half of the objectstack#14492 contract; maintainer
552
+ ruling B, 2026-09-02).
553
+
554
+ A dataset-bound chart's aggregate axis / legend title read the analytics
555
+ service's hard-coded English `Count` on a zh console whose category labels were
556
+ already Chinese. The renderer was passing `fields[].label` through verbatim —
557
+ correctly, for an author-declared measure (objectui#4106) — and had no way to
558
+ tell the server's built-in default apart from an author's label.
559
+
560
+ The wire now can: `AnalyticsResult.fields[]` gains an OPTIONAL structural
561
+ discriminator, `builtinAggregate?: 'count' | 'sum' | 'avg' | 'min' | 'max' |
562
+ 'count_distinct'`, populated only on the server-side built-in defaults
563
+ (objectstack#14492). This change is the consumer side of that contract:
564
+
565
+ - `@object-ui/core`: `buildChartSeries` now accepts `ChartMeasureField[]` —
566
+ `ChartResultField` plus the optional `builtinAggregate` carrier
567
+ (`BuiltinAggregateCarrier`), declared beside the renderer shape rather than
568
+ on it because the spec this release is built against does not carry the key
569
+ yet; new `BUILTIN_AGGREGATES` / `BuiltinAggregate` / `isBuiltinAggregate` /
570
+ `resolveMeasureLabel`; `ChartSeriesOptions.builtinAggregateLabels` carries
571
+ the locale strings in (core stays React-free and i18n-free — the same
572
+ division as `nullCategoryLabel`). A field carrying a recognised
573
+ discriminator resolves through that map; every other field keeps its wire
574
+ `label` verbatim — never by matching the label's text or the field's name
575
+ (the rejected option A).
576
+ - `@object-ui/i18n`: `builtinAggregateLabels(tt)` resolves the six strings
577
+ through the existing `report.aggregate.*` keys (zh already carried 计数 /
578
+ 求和 / 平均 / …; all ten packs are pinned to cover the vocabulary).
579
+ - `plugin-charts` (`ObjectChart`), `plugin-dashboard` (`DatasetWidget`),
580
+ `plugin-report` (`DatasetReportRenderer`): pass the resolved map to
581
+ `buildChartSeries`.
582
+
583
+ Before: 合作中 / 已流失 / 潜在 under an axis titled `Count`. After: the same
584
+ chart titled `计数`; an `en` session still reads `Count`; an author-labelled
585
+ measure (`Tasks`) and a measure literally named `count` without the
586
+ discriminator are byte-for-byte unchanged. Until the upstream field is
587
+ populated the wire carries no discriminator and every chart renders exactly as
588
+ before.
589
+ - c6198c2: **Breaking for authored metadata:** `ComponentInput.label`, `ComponentInput.defaultValue` and
590
+ `ComponentInput.advanced` are RETIRED on both faces (objectui#7493 item ① and objectui#7781;
591
+ maintainer ruling A of 2026-09-06, immediate, no deprecation window; ADR-0049 enforce-or-remove).
592
+ They are the three keys the manifest serializer does not forward, and nothing read them on any
593
+ publication or consumption path.
594
+
595
+ No manifest ever published them, so no consumer could ever have read them. `sdui-parser`'s
596
+ serializer (`packages/sdui-parser/src/index.ts`) forwards exactly seven keys per input — `name`,
597
+ `type`, `of`, `required`, `enum`, `binding`, `description` — so a value authored under any of the three
598
+ never reached `sdui.manifest.json`, the generated JSX `.d.ts`, or a diagnostic; its boundary type
599
+ has no slot for them; the registry's data-source seam reads `name` only; and neither the designer
600
+ nor the app-shell inspectors consult registry `inputs` at all. A structural census over every
601
+ `inputs:` array in the repository (re-measured on this change's merge-base, `name` 951 and `type`
602
+ 951 as the controls) counted the writes: `label` 908, `defaultValue` 245, `advanced` 9 — written on
603
+ nearly every registration, read by nothing.
604
+
605
+ FROM → TO, per key — all three **TOMBSTONED, not removed**, because the route was measured on
606
+ the built face before it was chosen: `ComponentInputSchema` is a non-strict `z.object`, and an
607
+ undeclared key parses GREEN and is silently STRIPPED, so a deletion would have swallowed 1,162
608
+ authored values in silence. The tombstone is what makes the refusal loud and by name.
609
+
610
+ - `label?: string` → `label?: never` on the interface, `retirementTombstone()` on the Zod mirror.
611
+ Migration: delete the key. An input is identified by its `name` on every path that reaches it;
612
+ nothing ever rendered a label for it.
613
+ - `defaultValue?: any` → `defaultValue?: never` / `retirementTombstone()`. Migration: delete the
614
+ key. The renderer's own fallback read IS the default; tell the author about it in `description`,
615
+ which IS published. (Tightening the type to `unknown` was ruled out: it closes no error class,
616
+ since nothing reads the value.)
617
+ - `advanced?: boolean` → `advanced?: never` / `retirementTombstone()`. Migration: delete the key.
618
+ No designer surface ever hid an "advanced" input; there is nothing to write instead.
619
+
620
+ The retirement kit: `?: never` on `ComponentInput` (`packages/types/src/base.ts`), so authoring one
621
+ is a `tsc` error at the registration site; `retirementTombstone()` on `ComponentInputSchema`
622
+ (`packages/types/src/zod/base.zod.ts`), so an authored value is REFUSED at parse time with
623
+ `code: 'invalid_type'`, the key named in the issue `path`, and the migration note as the message
624
+ (one string, both channels). Pinned in
625
+ `packages/types/src/__tests__/component-input-retired-keys-7493.test.ts`, which also holds a
626
+ tree-scoped absence census over every `inputs:` array under `packages/**` and `apps/**`.
627
+
628
+ Accept-set change, stated plainly for reviewers: a document that sets any of the three keys on a
629
+ `ComponentInput` used to parse GREEN (the value was then dropped by the serializer) and now parses
630
+ RED. Every in-repo authoring site — 1,199 keys across 110 registration files, the three standalone
631
+ `ComponentInput[]` arrays and the two named input arrays `tsc` found included — is deleted in the same change, as the ruling's split rule
632
+ requires; the `WidgetRegistry` seam no longer copies the widget-manifest values onto the synthesized
633
+ `ComponentInput` (they fed nothing), and the data-source declaration `ELEMENT_DATA_SOURCE_INPUT`
634
+ drops its `label`. The patch entries on the other packages record exactly that: their registrations
635
+ stop authoring inert keys, with no runtime or published-manifest change.
636
+
637
+ The nine test files that read `defaultValue` off a registration were re-pinned against the
638
+ renderer's ACTUAL default (its own fallback read, or the `defaultProps` it ships) instead of the
639
+ declaration that went away; two assertions that only restated the shadow default were dropped with
640
+ the reason on the line.
641
+
642
+ The in-repo zero is what was measured. Whether anything OUTSIDE this repository writes these keys
643
+ is not measurable from here (the objectui#5674 limit); converting such a write from a silent drop
644
+ into a named refusal is exactly what the tombstones buy. `WidgetInput`'s own `label` /
645
+ `defaultValue` / `advanced` (the widget-manifest face) stay declared and writable — nothing has
646
+ ruled on that face; that it now has no reader either is recorded as objectui#7911.
647
+ - fb336df: Move `lucide-react` from `^1.31.0` to `^1.43.0` in every package that declares it, and
648
+ repair what the jump breaks, so icons resolved from a STRING keep drawing a glyph.
649
+
650
+ Measured once against the installed 1.43.0 artifact when this change was made; nothing in
651
+ the repository re-derives these readings. Across the jump lucide removes no runtime export,
652
+ no public type name and no `lucide-react/dynamic.mjs` name, and every name this repository
653
+ imports from `lucide-react` resolves. Exactly one key leaves the runtime `icons` record:
654
+ `Trash2`, retired in favour of `trash`.
655
+
656
+ What a user sees change:
657
+
658
+ - Icons the lazy icon seam draws (`resolveIcon`, objectui#9251) get their path data again.
659
+ lucide 1.43.0 icon modules export their path data inside `__iconData` and no longer
660
+ export `__iconNode`; the seam now reads both. Reading only `__iconNode` against 1.43.0
661
+ leaves every such glyph an empty box, with nothing thrown or logged.
662
+ - `DetailView`'s delete action and three schema-catalog examples spell their icon
663
+ `trash`, not `trash-2`, so they keep resolving. The glyph is unchanged: 1.43.0's `trash`
664
+ path data is byte-identical to the `trash-2` path data of 1.31.0 and 1.35.0. Anything
665
+ that already authored `trash` now draws that same artwork, because lucide moved it under
666
+ the `trash` name; a few other glyphs were also redrawn upstream.
667
+ - Icons imported as COMPONENTS carry lucide 1.43.0's own classes: one class per declared
668
+ alias (a spinner renders `class="lucide lucide-loader-circle lucide-loader-2 ..."`), and
669
+ no longer the class lucide used to derive from the PascalCase key where that differs
670
+ (`ArrowDown01` no longer carries `lucide-arrow-down01`). The canonical
671
+ `lucide-<icon name>` class is still there, so a `.lucide-loader-circle` selector still
672
+ matches.
673
+ - Icons resolved from a STRING through the seam keep the classes they had: `lucide`, the
674
+ canonical `lucide-<icon name>` class and the key-derived class. They do not carry
675
+ lucide's per-alias classes. That is a maintainer ruling (objectui#8941, option C): the
676
+ alias list lives only inside each lazily loaded icon module, and it was not moved into
677
+ the eager name list. A selector that targets an alias class matches a component-imported
678
+ icon and not a string-resolved one. This also dates the example in the objectui#9251
679
+ entry: `trash-2` no longer resolves as a string, so no seam-drawn glyph carries
680
+ `lucide-trash2 lucide-trash-2`; a digit-bearing name that still resolves, such as
681
+ `arrow-down-0-1`, carries `lucide-arrow-down01 lucide-arrow-down-0-1`.
682
+ - Updated dependencies [7b10bef]
683
+ - Updated dependencies [97abedc]
684
+ - Updated dependencies [b46c58f]
685
+ - Updated dependencies [a507334]
686
+ - Updated dependencies [ad694ac]
687
+ - Updated dependencies [6f96fca]
688
+ - Updated dependencies [afb2284]
689
+ - Updated dependencies [3ac2de8]
690
+ - Updated dependencies [0aacecc]
691
+ - Updated dependencies [63f4f92]
692
+ - Updated dependencies [777fca2]
693
+ - Updated dependencies [c131d9e]
694
+ - Updated dependencies [5f00ff4]
695
+ - Updated dependencies [c9e073a]
696
+ - Updated dependencies [0361d6b]
697
+ - Updated dependencies [7b395d8]
698
+ - Updated dependencies [0879812]
699
+ - Updated dependencies [8cedb0d]
700
+ - Updated dependencies [162621b]
701
+ - Updated dependencies [4c6f549]
702
+ - Updated dependencies [80c5412]
703
+ - Updated dependencies [6cc910b]
704
+ - Updated dependencies [061f5e8]
705
+ - Updated dependencies [2dd4d3f]
706
+ - Updated dependencies [e686f4d]
707
+ - Updated dependencies [212c451]
708
+ - Updated dependencies [a04b06d]
709
+ - Updated dependencies [4ab4f1b]
710
+ - Updated dependencies [b57107d]
711
+ - Updated dependencies [e3ea4f9]
712
+ - Updated dependencies [65f1e8d]
713
+ - Updated dependencies [1f8ef0a]
714
+ - Updated dependencies [bb5d4ee]
715
+ - Updated dependencies [dc666f7]
716
+ - Updated dependencies [3335767]
717
+ - Updated dependencies [8b1f066]
718
+ - Updated dependencies [af243c1]
719
+ - Updated dependencies [cff4b77]
720
+ - Updated dependencies [31938f0]
721
+ - Updated dependencies [961ceaa]
722
+ - Updated dependencies [f3f4e4c]
723
+ - Updated dependencies [a05c350]
724
+ - Updated dependencies [1dbb993]
725
+ - Updated dependencies [2b5f509]
726
+ - Updated dependencies [808f339]
727
+ - Updated dependencies [6cf5999]
728
+ - Updated dependencies [274e14a]
729
+ - Updated dependencies [8c10f4f]
730
+ - Updated dependencies [90dac98]
731
+ - Updated dependencies [6096f20]
732
+ - Updated dependencies [544aca2]
733
+ - Updated dependencies [ea02938]
734
+ - Updated dependencies [a14fb23]
735
+ - Updated dependencies [ae98f1d]
736
+ - Updated dependencies [f98eddf]
737
+ - Updated dependencies [ce6bd99]
738
+ - Updated dependencies [a5b08c9]
739
+ - Updated dependencies [86982ac]
740
+ - Updated dependencies [8c929e6]
741
+ - Updated dependencies [cdefa2a]
742
+ - Updated dependencies [2fc2a24]
743
+ - Updated dependencies [0961d5e]
744
+ - Updated dependencies [9d25b9b]
745
+ - Updated dependencies [6276478]
746
+ - Updated dependencies [5e67837]
747
+ - Updated dependencies [ff14e29]
748
+ - Updated dependencies [9b28151]
749
+ - Updated dependencies [64563a9]
750
+ - Updated dependencies [1a5003f]
751
+ - Updated dependencies [09ab32b]
752
+ - Updated dependencies [8acc51b]
753
+ - Updated dependencies [ea9d17f]
754
+ - Updated dependencies [45362a3]
755
+ - Updated dependencies [2a943bf]
756
+ - Updated dependencies [111fa4c]
757
+ - Updated dependencies [93a689d]
758
+ - Updated dependencies [4357a27]
759
+ - Updated dependencies [e5f4343]
760
+ - Updated dependencies [3261e64]
761
+ - Updated dependencies [f5178a2]
762
+ - Updated dependencies [2ad3671]
763
+ - Updated dependencies [39bf246]
764
+ - Updated dependencies [8740e86]
765
+ - Updated dependencies [d22b37b]
766
+ - Updated dependencies [8c0e550]
767
+ - Updated dependencies [fde4caf]
768
+ - Updated dependencies [caf0ed0]
769
+ - Updated dependencies [1daf477]
770
+ - Updated dependencies [3d614ea]
771
+ - Updated dependencies [a7df45f]
772
+ - Updated dependencies [6c2f3c5]
773
+ - Updated dependencies [fb13e85]
774
+ - Updated dependencies [c2d8659]
775
+ - Updated dependencies [6516320]
776
+ - Updated dependencies [98b1a7c]
777
+ - Updated dependencies [e0f8202]
778
+ - Updated dependencies [ac2d6f1]
779
+ - Updated dependencies [9fbbb17]
780
+ - Updated dependencies [c3a26cc]
781
+ - Updated dependencies [a66e58e]
782
+ - Updated dependencies [d89492c]
783
+ - Updated dependencies [9a5f998]
784
+ - Updated dependencies [1c5ee33]
785
+ - Updated dependencies [9327397]
786
+ - Updated dependencies [17cc3a3]
787
+ - Updated dependencies [a9c5ea0]
788
+ - Updated dependencies [02e6d36]
789
+ - Updated dependencies [4758b33]
790
+ - Updated dependencies [4758b33]
791
+ - Updated dependencies [4758b33]
792
+ - Updated dependencies [f905090]
793
+ - Updated dependencies [3cd6c5e]
794
+ - Updated dependencies [5bb855d]
795
+ - Updated dependencies [9c78ebe]
796
+ - Updated dependencies [12809a5]
797
+ - Updated dependencies [9c78ebe]
798
+ - Updated dependencies [12809a5]
799
+ - Updated dependencies [7afc81d]
800
+ - Updated dependencies [f9c06ef]
801
+ - Updated dependencies [5ad3b88]
802
+ - Updated dependencies [f9d772b]
803
+ - Updated dependencies [bf14b64]
804
+ - Updated dependencies [4345558]
805
+ - Updated dependencies [97b6c21]
806
+ - Updated dependencies [26ca2ad]
807
+ - Updated dependencies [41ae65b]
808
+ - Updated dependencies [baac95a]
809
+ - Updated dependencies [13220af]
810
+ - Updated dependencies [29b45f6]
811
+ - Updated dependencies [39b8d51]
812
+ - Updated dependencies [17b323e]
813
+ - Updated dependencies [b956e69]
814
+ - Updated dependencies [b32e7de]
815
+ - Updated dependencies [ff94a12]
816
+ - Updated dependencies [33e58d8]
817
+ - Updated dependencies [256b4c9]
818
+ - Updated dependencies [97672ba]
819
+ - Updated dependencies [c5ec15c]
820
+ - Updated dependencies [fec3b1a]
821
+ - Updated dependencies [b8e0941]
822
+ - Updated dependencies [0c50f18]
823
+ - Updated dependencies [1dae95a]
824
+ - Updated dependencies [e32dae1]
825
+ - Updated dependencies [d0c0c7f]
826
+ - Updated dependencies [30b11ad]
827
+ - Updated dependencies [4aebea0]
828
+ - Updated dependencies [f976774]
829
+ - Updated dependencies [3d6badf]
830
+ - Updated dependencies [25cb364]
831
+ - Updated dependencies [a60539b]
832
+ - Updated dependencies [de1b879]
833
+ - Updated dependencies [c6678b1]
834
+ - Updated dependencies [0638322]
835
+ - Updated dependencies [e3782d2]
836
+ - Updated dependencies [db0beb2]
837
+ - Updated dependencies [997ce38]
838
+ - Updated dependencies [ae0b9d3]
839
+ - Updated dependencies [ad1785c]
840
+ - Updated dependencies [3b469c8]
841
+ - Updated dependencies [990a2d6]
842
+ - Updated dependencies [990a2d6]
843
+ - Updated dependencies [1c84036]
844
+ - Updated dependencies [1c84036]
845
+ - Updated dependencies [6650259]
846
+ - Updated dependencies [4f8b7f8]
847
+ - Updated dependencies [9e6619f]
848
+ - Updated dependencies [f6ae5e2]
849
+ - Updated dependencies [eb97ce6]
850
+ - Updated dependencies [7343376]
851
+ - Updated dependencies [b2683a2]
852
+ - Updated dependencies [dded788]
853
+ - Updated dependencies [b45d463]
854
+ - Updated dependencies [54a7830]
855
+ - Updated dependencies [f3135a4]
856
+ - Updated dependencies [b5696d3]
857
+ - Updated dependencies [3f9d926]
858
+ - Updated dependencies [e978ed5]
859
+ - Updated dependencies [6a7f24e]
860
+ - Updated dependencies [b3c96d6]
861
+ - Updated dependencies [8d0ca91]
862
+ - Updated dependencies [c30c8dd]
863
+ - Updated dependencies [244d516]
864
+ - Updated dependencies [deca847]
865
+ - Updated dependencies [ac15833]
866
+ - Updated dependencies [ac15833]
867
+ - Updated dependencies [e2dffc9]
868
+ - Updated dependencies [328abeb]
869
+ - Updated dependencies [dd0d78f]
870
+ - Updated dependencies [24d3e65]
871
+ - Updated dependencies [95a7c8d]
872
+ - Updated dependencies [e227156]
873
+ - Updated dependencies [cc4e476]
874
+ - Updated dependencies [92970c4]
875
+ - Updated dependencies [d570eaa]
876
+ - Updated dependencies [4b742f4]
877
+ - Updated dependencies [42687ba]
878
+ - Updated dependencies [6cd8f66]
879
+ - Updated dependencies [24a0f14]
880
+ - Updated dependencies [797a30f]
881
+ - Updated dependencies [b4075c0]
882
+ - Updated dependencies [9b85600]
883
+ - Updated dependencies [e327c89]
884
+ - Updated dependencies [2eaf5be]
885
+ - Updated dependencies [bf7ab35]
886
+ - Updated dependencies [99878d8]
887
+ - Updated dependencies [3c13675]
888
+ - Updated dependencies [63ab761]
889
+ - Updated dependencies [0eb9f36]
890
+ - Updated dependencies [ae582b7]
891
+ - Updated dependencies [51c2949]
892
+ - Updated dependencies [a4b017e]
893
+ - Updated dependencies [8732846]
894
+ - Updated dependencies [559a2e2]
895
+ - Updated dependencies [db11afd]
896
+ - Updated dependencies [154075a]
897
+ - Updated dependencies [582edef]
898
+ - Updated dependencies [19f484f]
899
+ - Updated dependencies [0a78a20]
900
+ - Updated dependencies [615346d]
901
+ - Updated dependencies [75dcc81]
902
+ - Updated dependencies [55a12a8]
903
+ - Updated dependencies [edfcf5a]
904
+ - Updated dependencies [0a3e540]
905
+ - Updated dependencies [c021b35]
906
+ - Updated dependencies [f61dab1]
907
+ - Updated dependencies [b0a05dd]
908
+ - Updated dependencies [dd5ff19]
909
+ - Updated dependencies [54997ff]
910
+ - Updated dependencies [81f8498]
911
+ - Updated dependencies [a782fa7]
912
+ - Updated dependencies [1d6a23d]
913
+ - Updated dependencies [0645133]
914
+ - Updated dependencies [76e9df0]
915
+ - Updated dependencies [0ecaa7d]
916
+ - Updated dependencies [b24f93a]
917
+ - Updated dependencies [6158e4c]
918
+ - Updated dependencies [cff8641]
919
+ - Updated dependencies [c27b575]
920
+ - Updated dependencies [84b275c]
921
+ - Updated dependencies [0e6e76b]
922
+ - Updated dependencies [bf43afa]
923
+ - Updated dependencies [385ebc5]
924
+ - Updated dependencies [3a0e7ab]
925
+ - Updated dependencies [858eafb]
926
+ - Updated dependencies [a8c5509]
927
+ - Updated dependencies [c2a8d23]
928
+ - Updated dependencies [0ffc423]
929
+ - Updated dependencies [3cc4fe5]
930
+ - Updated dependencies [cd5b19a]
931
+ - Updated dependencies [cd5b19a]
932
+ - Updated dependencies [17dc167]
933
+ - Updated dependencies [20d23be]
934
+ - Updated dependencies [20d23be]
935
+ - Updated dependencies [2e3da72]
936
+ - Updated dependencies [1263e40]
937
+ - Updated dependencies [e6bc087]
938
+ - Updated dependencies [9419df1]
939
+ - Updated dependencies [8bab157]
940
+ - Updated dependencies [a7557a7]
941
+ - Updated dependencies [7d074ba]
942
+ - Updated dependencies [6158e4c]
943
+ - Updated dependencies [6158e4c]
944
+ - Updated dependencies [52aad5c]
945
+ - Updated dependencies [18d1a0a]
946
+ - Updated dependencies [7fed09d]
947
+ - Updated dependencies [c1763e5]
948
+ - Updated dependencies [58da8ae]
949
+ - Updated dependencies [a8b9889]
950
+ - Updated dependencies [138ad45]
951
+ - Updated dependencies [138ad45]
952
+ - Updated dependencies [5262f7d]
953
+ - Updated dependencies [6aa029b]
954
+ - Updated dependencies [2124d04]
955
+ - Updated dependencies [be52115]
956
+ - Updated dependencies [770cc5b]
957
+ - Updated dependencies [1a88ce2]
958
+ - Updated dependencies [a1a44d6]
959
+ - Updated dependencies [e0a9c67]
960
+ - Updated dependencies [5638529]
961
+ - Updated dependencies [5638529]
962
+ - Updated dependencies [d0fba91]
963
+ - Updated dependencies [c476be0]
964
+ - Updated dependencies [c82ff39]
965
+ - Updated dependencies [6c3da53]
966
+ - Updated dependencies [31987bd]
967
+ - Updated dependencies [3c3ce15]
968
+ - Updated dependencies [063119f]
969
+ - Updated dependencies [e100589]
970
+ - Updated dependencies [304f611]
971
+ - Updated dependencies [e46ee77]
972
+ - Updated dependencies [f9c8c4e]
973
+ - Updated dependencies [6e9c8d2]
974
+ - Updated dependencies [9547063]
975
+ - Updated dependencies [3f6efd6]
976
+ - Updated dependencies [52c95a1]
977
+ - Updated dependencies [55d18c6]
978
+ - Updated dependencies [c4ab6d0]
979
+ - Updated dependencies [0e9058b]
980
+ - Updated dependencies [c4ab6d0]
981
+ - Updated dependencies [5988b6b]
982
+ - Updated dependencies [6158e4c]
983
+ - Updated dependencies [00ccdf7]
984
+ - Updated dependencies [9d9ed54]
985
+ - Updated dependencies [6007dd4]
986
+ - Updated dependencies [4a1adb7]
987
+ - Updated dependencies [4a1adb7]
988
+ - Updated dependencies [4a1adb7]
989
+ - Updated dependencies [185b7a0]
990
+ - Updated dependencies [50c73fe]
991
+ - Updated dependencies [ca3de72]
992
+ - Updated dependencies [83e3f83]
993
+ - Updated dependencies [401611b]
994
+ - Updated dependencies [2c0ddf2]
995
+ - Updated dependencies [4abc0aa]
996
+ - Updated dependencies [f560ded]
997
+ - Updated dependencies [2b188fa]
998
+ - Updated dependencies [b654d4e]
999
+ - Updated dependencies [f68e0a0]
1000
+ - Updated dependencies [aea682a]
1001
+ - Updated dependencies [fcdc8ec]
1002
+ - Updated dependencies [2d576e4]
1003
+ - Updated dependencies [8366acc]
1004
+ - Updated dependencies [95e58a3]
1005
+ - Updated dependencies [9d7419b]
1006
+ - Updated dependencies [fc7db05]
1007
+ - Updated dependencies [9ed8d0f]
1008
+ - Updated dependencies [c73cdb5]
1009
+ - Updated dependencies [6f5719e]
1010
+ - Updated dependencies [d0097af]
1011
+ - Updated dependencies [432882b]
1012
+ - Updated dependencies [64dae8e]
1013
+ - Updated dependencies [b06e374]
1014
+ - Updated dependencies [06a8af5]
1015
+ - Updated dependencies [6a91586]
1016
+ - Updated dependencies [a04d7c6]
1017
+ - Updated dependencies [5ccc500]
1018
+ - Updated dependencies [f3c2bb0]
1019
+ - Updated dependencies [978507b]
1020
+ - Updated dependencies [778138e]
1021
+ - Updated dependencies [9801765]
1022
+ - Updated dependencies [9cebfca]
1023
+ - Updated dependencies [460575f]
1024
+ - Updated dependencies [d796c8d]
1025
+ - Updated dependencies [594704f]
1026
+ - Updated dependencies [d3995fe]
1027
+ - Updated dependencies [1b1d772]
1028
+ - Updated dependencies [d88e20f]
1029
+ - Updated dependencies [2d7304d]
1030
+ - Updated dependencies [636b236]
1031
+ - Updated dependencies [4172589]
1032
+ - Updated dependencies [d6d8fb9]
1033
+ - Updated dependencies [64d624d]
1034
+ - Updated dependencies [053fdc8]
1035
+ - Updated dependencies [41b7ce3]
1036
+ - Updated dependencies [ae476b8]
1037
+ - Updated dependencies [39f4309]
1038
+ - Updated dependencies [95bad12]
1039
+ - Updated dependencies [d2fb6ef]
1040
+ - Updated dependencies [7cd3987]
1041
+ - Updated dependencies [ee3b878]
1042
+ - Updated dependencies [e304a4e]
1043
+ - Updated dependencies [fda49e5]
1044
+ - Updated dependencies [490d9a9]
1045
+ - Updated dependencies [fc62bb4]
1046
+ - Updated dependencies [41df893]
1047
+ - Updated dependencies [0cba1b7]
1048
+ - Updated dependencies [00f3eb5]
1049
+ - Updated dependencies [1ec291c]
1050
+ - Updated dependencies [453dbaa]
1051
+ - Updated dependencies [95f8704]
1052
+ - Updated dependencies [f8cdbf2]
1053
+ - Updated dependencies [69a2163]
1054
+ - Updated dependencies [24e027e]
1055
+ - Updated dependencies [2c3cd1b]
1056
+ - Updated dependencies [e176053]
1057
+ - Updated dependencies [e30ed15]
1058
+ - Updated dependencies [90665e0]
1059
+ - Updated dependencies [8d3a529]
1060
+ - Updated dependencies [5ac2e2c]
1061
+ - Updated dependencies [194fae1]
1062
+ - Updated dependencies [7e19d03]
1063
+ - Updated dependencies [b08b7eb]
1064
+ - Updated dependencies [1e946c9]
1065
+ - Updated dependencies [546ddf7]
1066
+ - Updated dependencies [864154e]
1067
+ - Updated dependencies [b023625]
1068
+ - Updated dependencies [75bd83d]
1069
+ - Updated dependencies [44d075b]
1070
+ - Updated dependencies [40c479a]
1071
+ - Updated dependencies [971d387]
1072
+ - Updated dependencies [ee851c3]
1073
+ - Updated dependencies [6414dfd]
1074
+ - Updated dependencies [a8d5c71]
1075
+ - Updated dependencies [905b21f]
1076
+ - Updated dependencies [88e9109]
1077
+ - Updated dependencies [2c45966]
1078
+ - Updated dependencies [db3a600]
1079
+ - Updated dependencies [3a3db76]
1080
+ - Updated dependencies [0d723a3]
1081
+ - Updated dependencies [0c95d3d]
1082
+ - Updated dependencies [3e4fa2c]
1083
+ - Updated dependencies [b5b928a]
1084
+ - Updated dependencies [6fd2cf7]
1085
+ - Updated dependencies [5fa06c4]
1086
+ - Updated dependencies [52a43de]
1087
+ - Updated dependencies [195052f]
1088
+ - Updated dependencies [e4559d1]
1089
+ - Updated dependencies [2c71482]
1090
+ - Updated dependencies [129bcc5]
1091
+ - Updated dependencies [a26b9e4]
1092
+ - Updated dependencies [5ef9c4f]
1093
+ - Updated dependencies [46f0bb4]
1094
+ - Updated dependencies [06b82b8]
1095
+ - Updated dependencies [8ec11e1]
1096
+ - Updated dependencies [6f81384]
1097
+ - Updated dependencies [22ba927]
1098
+ - Updated dependencies [8631c32]
1099
+ - Updated dependencies [f8c70f4]
1100
+ - Updated dependencies [5d3a2d1]
1101
+ - Updated dependencies [8f1d995]
1102
+ - Updated dependencies [b362c1b]
1103
+ - Updated dependencies [f9c34df]
1104
+ - Updated dependencies [dddb942]
1105
+ - Updated dependencies [00c665e]
1106
+ - Updated dependencies [29754cf]
1107
+ - Updated dependencies [d7de534]
1108
+ - Updated dependencies [3c2b6f7]
1109
+ - Updated dependencies [6e88630]
1110
+ - Updated dependencies [b84dc18]
1111
+ - Updated dependencies [ac8abb0]
1112
+ - Updated dependencies [9d86e1d]
1113
+ - Updated dependencies [3a5817f]
1114
+ - Updated dependencies [99a3c2d]
1115
+ - Updated dependencies [5961030]
1116
+ - Updated dependencies [f24de8b]
1117
+ - Updated dependencies [c8ea8af]
1118
+ - Updated dependencies [9602dc8]
1119
+ - Updated dependencies [3190414]
1120
+ - Updated dependencies [4e480f5]
1121
+ - Updated dependencies [38a123c]
1122
+ - Updated dependencies [299102e]
1123
+ - Updated dependencies [30c73cd]
1124
+ - Updated dependencies [830ed58]
1125
+ - Updated dependencies [d7acad6]
1126
+ - Updated dependencies [45a9aeb]
1127
+ - Updated dependencies [713db46]
1128
+ - Updated dependencies [c71e14d]
1129
+ - Updated dependencies [bf3a03c]
1130
+ - Updated dependencies [cb55718]
1131
+ - Updated dependencies [748494b]
1132
+ - Updated dependencies [5967be0]
1133
+ - Updated dependencies [831be72]
1134
+ - Updated dependencies [29cb85b]
1135
+ - Updated dependencies [3e028c8]
1136
+ - Updated dependencies [d0889e2]
1137
+ - Updated dependencies [ce503e5]
1138
+ - Updated dependencies [f20dcf0]
1139
+ - Updated dependencies [12402a9]
1140
+ - Updated dependencies [aff3d7a]
1141
+ - Updated dependencies [4ca30d0]
1142
+ - Updated dependencies [7a5da14]
1143
+ - Updated dependencies [fff9645]
1144
+ - Updated dependencies [9c3b7ce]
1145
+ - Updated dependencies [2c1c967]
1146
+ - Updated dependencies [9486ac6]
1147
+ - Updated dependencies [9486ac6]
1148
+ - Updated dependencies [4d5f9b4]
1149
+ - Updated dependencies [d6ceb8d]
1150
+ - Updated dependencies [dc4365c]
1151
+ - Updated dependencies [e321d52]
1152
+ - Updated dependencies [969ba84]
1153
+ - Updated dependencies [98188c2]
1154
+ - Updated dependencies [4c68077]
1155
+ - Updated dependencies [7977ff9]
1156
+ - Updated dependencies [3beef6d]
1157
+ - Updated dependencies [06b8c42]
1158
+ - Updated dependencies [46b9bc9]
1159
+ - Updated dependencies [f46bd39]
1160
+ - Updated dependencies [b98352a]
1161
+ - Updated dependencies [b76ca67]
1162
+ - Updated dependencies [b97790a]
1163
+ - Updated dependencies [dbd5194]
1164
+ - Updated dependencies [7c9b044]
1165
+ - Updated dependencies [e552c31]
1166
+ - Updated dependencies [d47de51]
1167
+ - Updated dependencies [3fe6463]
1168
+ - Updated dependencies [b392674]
1169
+ - Updated dependencies [4f3a1e2]
1170
+ - Updated dependencies [31ab372]
1171
+ - Updated dependencies [846889b]
1172
+ - Updated dependencies [2acd8e1]
1173
+ - Updated dependencies [7b90231]
1174
+ - Updated dependencies [26896c6]
1175
+ - Updated dependencies [67fc3b0]
1176
+ - Updated dependencies [8579e34]
1177
+ - Updated dependencies [d57db5d]
1178
+ - Updated dependencies [33a3b3c]
1179
+ - Updated dependencies [b87f15b]
1180
+ - Updated dependencies [045d20b]
1181
+ - Updated dependencies [a2d2515]
1182
+ - Updated dependencies [c18d099]
1183
+ - Updated dependencies [0caacca]
1184
+ - Updated dependencies [adb2a86]
1185
+ - Updated dependencies [03380aa]
1186
+ - Updated dependencies [4562ea5]
1187
+ - Updated dependencies [3619792]
1188
+ - Updated dependencies [3561bd2]
1189
+ - Updated dependencies [bf97b98]
1190
+ - Updated dependencies [320374d]
1191
+ - Updated dependencies [b0d308d]
1192
+ - Updated dependencies [b458300]
1193
+ - Updated dependencies [40f34b4]
1194
+ - Updated dependencies [bd0376d]
1195
+ - Updated dependencies [8063bcb]
1196
+ - Updated dependencies [b74a859]
1197
+ - Updated dependencies [d4493fd]
1198
+ - Updated dependencies [240b80f]
1199
+ - Updated dependencies [77cb489]
1200
+ - Updated dependencies [bfaa158]
1201
+ - Updated dependencies [777e5c6]
1202
+ - Updated dependencies [0c386dd]
1203
+ - Updated dependencies [39d69ad]
1204
+ - Updated dependencies [9e37d9b]
1205
+ - Updated dependencies [5ad86dd]
1206
+ - Updated dependencies [16a725f]
1207
+ - Updated dependencies [4dfdcc3]
1208
+ - Updated dependencies [6a449fc]
1209
+ - Updated dependencies [446d93d]
1210
+ - Updated dependencies [ecd9cb2]
1211
+ - Updated dependencies [f08bcd9]
1212
+ - Updated dependencies [98d4108]
1213
+ - Updated dependencies [0e3b3be]
1214
+ - Updated dependencies [a29ae2d]
1215
+ - Updated dependencies [220c18d]
1216
+ - Updated dependencies [00d3f09]
1217
+ - Updated dependencies [4388f71]
1218
+ - Updated dependencies [0b1ac58]
1219
+ - Updated dependencies [c93b4d5]
1220
+ - Updated dependencies [c1fe272]
1221
+ - Updated dependencies [3cab570]
1222
+ - Updated dependencies [8ad218d]
1223
+ - Updated dependencies [3e41187]
1224
+ - Updated dependencies [5f78953]
1225
+ - Updated dependencies [639114c]
1226
+ - Updated dependencies [639114c]
1227
+ - Updated dependencies [1490691]
1228
+ - Updated dependencies [e8e4c4d]
1229
+ - Updated dependencies [1f31d3a]
1230
+ - Updated dependencies [d1842ab]
1231
+ - Updated dependencies [78ca238]
1232
+ - Updated dependencies [d8ec8d6]
1233
+ - Updated dependencies [351eb31]
1234
+ - Updated dependencies [866cd1d]
1235
+ - Updated dependencies [20c04b2]
1236
+ - Updated dependencies [01c9023]
1237
+ - Updated dependencies [48c19bd]
1238
+ - Updated dependencies [a6d8b8d]
1239
+ - Updated dependencies [4b5bb95]
1240
+ - Updated dependencies [b652514]
1241
+ - Updated dependencies [adbda1b]
1242
+ - Updated dependencies [adbda1b]
1243
+ - Updated dependencies [8952395]
1244
+ - Updated dependencies [e2b3826]
1245
+ - Updated dependencies [0348bc9]
1246
+ - Updated dependencies [e8c553b]
1247
+ - Updated dependencies [2e32ed4]
1248
+ - Updated dependencies [554e647]
1249
+ - Updated dependencies [3ed3eec]
1250
+ - Updated dependencies [7c3df8f]
1251
+ - Updated dependencies [a4514e8]
1252
+ - Updated dependencies [db3896c]
1253
+ - Updated dependencies [b9f5ff1]
1254
+ - Updated dependencies [e75f4c9]
1255
+ - Updated dependencies [19f1639]
1256
+ - Updated dependencies [4704aa4]
1257
+ - Updated dependencies [47547d0]
1258
+ - Updated dependencies [1bee5d0]
1259
+ - Updated dependencies [858cd72]
1260
+ - Updated dependencies [cfc9b6d]
1261
+ - Updated dependencies [554f2b6]
1262
+ - Updated dependencies [72f55c9]
1263
+ - Updated dependencies [26e06d7]
1264
+ - Updated dependencies [669d71b]
1265
+ - Updated dependencies [ed27d7c]
1266
+ - Updated dependencies [52c8cf7]
1267
+ - Updated dependencies [2ceb43a]
1268
+ - Updated dependencies [7cdd2b9]
1269
+ - Updated dependencies [52c8cf7]
1270
+ - Updated dependencies [3399704]
1271
+ - Updated dependencies [71a4a53]
1272
+ - Updated dependencies [7bf244b]
1273
+ - Updated dependencies [f0bb9fa]
1274
+ - Updated dependencies [81a2eb1]
1275
+ - Updated dependencies [caa0cd3]
1276
+ - Updated dependencies [caa0cd3]
1277
+ - Updated dependencies [20cb8db]
1278
+ - Updated dependencies [25c7d58]
1279
+ - Updated dependencies [00d2fa6]
1280
+ - Updated dependencies [77b2a18]
1281
+ - Updated dependencies [c6198c2]
1282
+ - Updated dependencies [721d1e0]
1283
+ - Updated dependencies [c2f0f48]
1284
+ - Updated dependencies [1237ae4]
1285
+ - Updated dependencies [2f61238]
1286
+ - Updated dependencies [51eb515]
1287
+ - Updated dependencies [c354ce5]
1288
+ - Updated dependencies [8fe8e5c]
1289
+ - Updated dependencies [feac439]
1290
+ - Updated dependencies [9ae871d]
1291
+ - Updated dependencies [efbd566]
1292
+ - Updated dependencies [2a5bf45]
1293
+ - Updated dependencies [9587fc9]
1294
+ - Updated dependencies [e62c44e]
1295
+ - Updated dependencies [daf9d57]
1296
+ - Updated dependencies [23b9958]
1297
+ - Updated dependencies [c15d7ec]
1298
+ - Updated dependencies [5d0876c]
1299
+ - Updated dependencies [f7ace0a]
1300
+ - Updated dependencies [b041b9c]
1301
+ - Updated dependencies [ce2aaef]
1302
+ - Updated dependencies [544ecba]
1303
+ - Updated dependencies [2ce2612]
1304
+ - Updated dependencies [bc640ec]
1305
+ - Updated dependencies [1e215c4]
1306
+ - Updated dependencies [da6e191]
1307
+ - Updated dependencies [3e377c9]
1308
+ - Updated dependencies [a3eb5d0]
1309
+ - Updated dependencies [4ce14f1]
1310
+ - Updated dependencies [aef97e5]
1311
+ - Updated dependencies [2af1fa7]
1312
+ - Updated dependencies [c14d3a0]
1313
+ - Updated dependencies [a137d0c]
1314
+ - Updated dependencies [caf477f]
1315
+ - Updated dependencies [f6375da]
1316
+ - Updated dependencies [967e5d8]
1317
+ - Updated dependencies [c907a9c]
1318
+ - Updated dependencies [a4611b3]
1319
+ - Updated dependencies [20316ba]
1320
+ - Updated dependencies [d3499b3]
1321
+ - Updated dependencies [91f9276]
1322
+ - Updated dependencies [309c75e]
1323
+ - Updated dependencies [c9f9bae]
1324
+ - Updated dependencies [18897a4]
1325
+ - Updated dependencies [8b7ea39]
1326
+ - Updated dependencies [a915064]
1327
+ - Updated dependencies [dcbf0b2]
1328
+ - Updated dependencies [52cac38]
1329
+ - Updated dependencies [93fea2e]
1330
+ - Updated dependencies [1422a92]
1331
+ - Updated dependencies [d05fe17]
1332
+ - Updated dependencies [a480f79]
1333
+ - Updated dependencies [f08d1a8]
1334
+ - Updated dependencies [64a252d]
1335
+ - Updated dependencies [786bc91]
1336
+ - Updated dependencies [75fca96]
1337
+ - Updated dependencies [7ca6ddd]
1338
+ - Updated dependencies [f1cd290]
1339
+ - Updated dependencies [5a41ce7]
1340
+ - Updated dependencies [8d50bc2]
1341
+ - Updated dependencies [604476d]
1342
+ - Updated dependencies [d1bebb0]
1343
+ - Updated dependencies [95bf128]
1344
+ - Updated dependencies [335abea]
1345
+ - Updated dependencies [edea22a]
1346
+ - Updated dependencies [0f5cadf]
1347
+ - Updated dependencies [4f9f1ee]
1348
+ - Updated dependencies [66e8b2a]
1349
+ - Updated dependencies [aa083cd]
1350
+ - Updated dependencies [12b5992]
1351
+ - Updated dependencies [b93e245]
1352
+ - Updated dependencies [c842594]
1353
+ - Updated dependencies [290de37]
1354
+ - Updated dependencies [e1c27e4]
1355
+ - Updated dependencies [8c8da45]
1356
+ - Updated dependencies [8cd8eb5]
1357
+ - Updated dependencies [f52a9d7]
1358
+ - Updated dependencies [cf1d29e]
1359
+ - Updated dependencies [1bd79c8]
1360
+ - Updated dependencies [af9e957]
1361
+ - Updated dependencies [b1030c7]
1362
+ - Updated dependencies [c974edf]
1363
+ - Updated dependencies [ad852b6]
1364
+ - Updated dependencies [6778809]
1365
+ - Updated dependencies [3a3dd28]
1366
+ - Updated dependencies [7fb22a1]
1367
+ - Updated dependencies [ad66d79]
1368
+ - Updated dependencies [0758bd8]
1369
+ - Updated dependencies [ee4d19f]
1370
+ - Updated dependencies [496d31d]
1371
+ - Updated dependencies [7ed9808]
1372
+ - Updated dependencies [0ea7054]
1373
+ - Updated dependencies [ac0e39a]
1374
+ - Updated dependencies [9a853f2]
1375
+ - Updated dependencies [cb847fd]
1376
+ - Updated dependencies [ee70287]
1377
+ - Updated dependencies [3e98e13]
1378
+ - Updated dependencies [a695f50]
1379
+ - Updated dependencies [fc32921]
1380
+ - Updated dependencies [4eaa835]
1381
+ - Updated dependencies [8f9d87a]
1382
+ - Updated dependencies [b1777ae]
1383
+ - Updated dependencies [24845c4]
1384
+ - Updated dependencies [6f864cf]
1385
+ - Updated dependencies [24d1edd]
1386
+ - Updated dependencies [645087c]
1387
+ - Updated dependencies [33f4a19]
1388
+ - Updated dependencies [6e9a3d4]
1389
+ - Updated dependencies [4a292d2]
1390
+ - Updated dependencies [5323168]
1391
+ - Updated dependencies [841dd2b]
1392
+ - Updated dependencies [3014fc0]
1393
+ - Updated dependencies [dacb402]
1394
+ - Updated dependencies [846cec0]
1395
+ - Updated dependencies [91facae]
1396
+ - Updated dependencies [b38014e]
1397
+ - Updated dependencies [474797d]
1398
+ - Updated dependencies [704e695]
1399
+ - Updated dependencies [a407bd6]
1400
+ - Updated dependencies [317dbce]
1401
+ - Updated dependencies [309728c]
1402
+ - Updated dependencies [c03d03b]
1403
+ - Updated dependencies [aa08d7e]
1404
+ - Updated dependencies [3a43a15]
1405
+ - Updated dependencies [868e825]
1406
+ - Updated dependencies [f76f436]
1407
+ - Updated dependencies [ce45a03]
1408
+ - Updated dependencies [421544b]
1409
+ - Updated dependencies [fb01022]
1410
+ - Updated dependencies [e9d9212]
1411
+ - Updated dependencies [ecfb693]
1412
+ - Updated dependencies [639ca9d]
1413
+ - Updated dependencies [2152962]
1414
+ - Updated dependencies [abc1b18]
1415
+ - Updated dependencies [81a51db]
1416
+ - Updated dependencies [67749c7]
1417
+ - Updated dependencies [507b61b]
1418
+ - Updated dependencies [512c84b]
1419
+ - Updated dependencies [c300267]
1420
+ - Updated dependencies [fb3a101]
1421
+ - Updated dependencies [d4733f2]
1422
+ - Updated dependencies [7c9145f]
1423
+ - Updated dependencies [1570eac]
1424
+ - Updated dependencies [f391ede]
1425
+ - Updated dependencies [f5cfbbd]
1426
+ - Updated dependencies [f5cfbbd]
1427
+ - Updated dependencies [8b532cb]
1428
+ - Updated dependencies [64c3cdd]
1429
+ - Updated dependencies [4d65991]
1430
+ - Updated dependencies [c42554e]
1431
+ - Updated dependencies [3e71b26]
1432
+ - Updated dependencies [b89583b]
1433
+ - Updated dependencies [70c4523]
1434
+ - Updated dependencies [555b4ec]
1435
+ - Updated dependencies [64f1cf1]
1436
+ - Updated dependencies [da5e4f6]
1437
+ - Updated dependencies [1ccfc23]
1438
+ - Updated dependencies [542718f]
1439
+ - Updated dependencies [7f27bc5]
1440
+ - Updated dependencies [0a174f3]
1441
+ - Updated dependencies [676f677]
1442
+ - Updated dependencies [f95b140]
1443
+ - Updated dependencies [541ce4e]
1444
+ - Updated dependencies [6479086]
1445
+ - Updated dependencies [d79f525]
1446
+ - Updated dependencies [d1865d2]
1447
+ - Updated dependencies [88a629d]
1448
+ - Updated dependencies [cdd2542]
1449
+ - Updated dependencies [ab77513]
1450
+ - Updated dependencies [55ba3ff]
1451
+ - Updated dependencies [3ecc369]
1452
+ - Updated dependencies [f1190b0]
1453
+ - Updated dependencies [561abef]
1454
+ - Updated dependencies [ef52001]
1455
+ - Updated dependencies [6a4680b]
1456
+ - Updated dependencies [c3a4273]
1457
+ - Updated dependencies [abf710d]
1458
+ - Updated dependencies [093af32]
1459
+ - Updated dependencies [1bd1be7]
1460
+ - Updated dependencies [d234fa9]
1461
+ - Updated dependencies [adf5812]
1462
+ - Updated dependencies [0eaed83]
1463
+ - Updated dependencies [e36acd4]
1464
+ - Updated dependencies [5058336]
1465
+ - Updated dependencies [2f6b2bf]
1466
+ - Updated dependencies [2028b31]
1467
+ - Updated dependencies [63601ab]
1468
+ - Updated dependencies [c372b29]
1469
+ - Updated dependencies [152f0a7]
1470
+ - Updated dependencies [8693b85]
1471
+ - Updated dependencies [e82dad1]
1472
+ - Updated dependencies [58b7b3d]
1473
+ - Updated dependencies [84defab]
1474
+ - Updated dependencies [681d3f1]
1475
+ - Updated dependencies [969d4f2]
1476
+ - Updated dependencies [f3bc481]
1477
+ - Updated dependencies [b79aac2]
1478
+ - Updated dependencies [93fc0e7]
1479
+ - Updated dependencies [a4b723f]
1480
+ - Updated dependencies [2b10ca0]
1481
+ - Updated dependencies [7db4a81]
1482
+ - Updated dependencies [19a0b0e]
1483
+ - Updated dependencies [526fc11]
1484
+ - Updated dependencies [f8e3e9a]
1485
+ - Updated dependencies [b9d47ec]
1486
+ - Updated dependencies [3b6bc69]
1487
+ - Updated dependencies [6214db6]
1488
+ - Updated dependencies [6732df4]
1489
+ - Updated dependencies [fe9e0d0]
1490
+ - Updated dependencies [63fb72c]
1491
+ - Updated dependencies [804831c]
1492
+ - Updated dependencies [279e48e]
1493
+ - Updated dependencies [8700d6d]
1494
+ - Updated dependencies [8db2a0f]
1495
+ - Updated dependencies [689953a]
1496
+ - Updated dependencies [30443fb]
1497
+ - Updated dependencies [8d3dbb2]
1498
+ - Updated dependencies [efc1c9c]
1499
+ - Updated dependencies [da45e6b]
1500
+ - Updated dependencies [7533465]
1501
+ - Updated dependencies [835f0f3]
1502
+ - Updated dependencies [6d5db7b]
1503
+ - Updated dependencies [a9d97be]
1504
+ - Updated dependencies [ed35b44]
1505
+ - Updated dependencies [9ba7e9c]
1506
+ - Updated dependencies [729e851]
1507
+ - Updated dependencies [96919a4]
1508
+ - Updated dependencies [345e24a]
1509
+ - Updated dependencies [20b507a]
1510
+ - Updated dependencies [2e471dc]
1511
+ - Updated dependencies [6748587]
1512
+ - Updated dependencies [be50942]
1513
+ - Updated dependencies [775e079]
1514
+ - Updated dependencies [7e8b3c0]
1515
+ - Updated dependencies [53374dc]
1516
+ - Updated dependencies [f6fb83f]
1517
+ - Updated dependencies [2049b03]
1518
+ - Updated dependencies [2bf34f7]
1519
+ - Updated dependencies [15b33ae]
1520
+ - Updated dependencies [7cbc724]
1521
+ - Updated dependencies [4a94c38]
1522
+ - Updated dependencies [7098eed]
1523
+ - Updated dependencies [3df7c5c]
1524
+ - Updated dependencies [fb91ac9]
1525
+ - Updated dependencies [fb91ac9]
1526
+ - Updated dependencies [641fb55]
1527
+ - Updated dependencies [8524372]
1528
+ - Updated dependencies [7cbefa5]
1529
+ - Updated dependencies [72d6587]
1530
+ - Updated dependencies [a272a4f]
1531
+ - Updated dependencies [55f39ee]
1532
+ - Updated dependencies [0ce32d5]
1533
+ - Updated dependencies [0970a0e]
1534
+ - Updated dependencies [e427e9c]
1535
+ - Updated dependencies [bbc9dc3]
1536
+ - Updated dependencies [02f1813]
1537
+ - Updated dependencies [1ef89c0]
1538
+ - Updated dependencies [ba0b61a]
1539
+ - Updated dependencies [ba0b61a]
1540
+ - Updated dependencies [ac716ff]
1541
+ - Updated dependencies [e05553c]
1542
+ - Updated dependencies [f0f3cd5]
1543
+ - Updated dependencies [ab856ed]
1544
+ - Updated dependencies [f0f2046]
1545
+ - Updated dependencies [20f3e65]
1546
+ - Updated dependencies [bbba098]
1547
+ - Updated dependencies [87af769]
1548
+ - Updated dependencies [3be720e]
1549
+ - Updated dependencies [43c0d17]
1550
+ - Updated dependencies [c3df43a]
1551
+ - Updated dependencies [d16d0e9]
1552
+ - Updated dependencies [bbe57fd]
1553
+ - Updated dependencies [272a530]
1554
+ - Updated dependencies [1779e8d]
1555
+ - Updated dependencies [9aa2a57]
1556
+ - Updated dependencies [f7fcc2c]
1557
+ - Updated dependencies [f0f4d6c]
1558
+ - Updated dependencies [4128188]
1559
+ - Updated dependencies [b253c4e]
1560
+ - Updated dependencies [78a9c67]
1561
+ - Updated dependencies [2e97c8c]
1562
+ - Updated dependencies [4a7ef0d]
1563
+ - Updated dependencies [4598f6d]
1564
+ - Updated dependencies [dea17b4]
1565
+ - Updated dependencies [89bb77a]
1566
+ - Updated dependencies [06611e4]
1567
+ - Updated dependencies [44152c4]
1568
+ - Updated dependencies [3939545]
1569
+ - Updated dependencies [66abbde]
1570
+ - Updated dependencies [dc3893d]
1571
+ - Updated dependencies [1bbaa16]
1572
+ - Updated dependencies [6ee259a]
1573
+ - Updated dependencies [7649f43]
1574
+ - Updated dependencies [e708426]
1575
+ - Updated dependencies [3b6d53b]
1576
+ - Updated dependencies [e22fa12]
1577
+ - Updated dependencies [1560d46]
1578
+ - Updated dependencies [276d174]
1579
+ - Updated dependencies [2982ed9]
1580
+ - Updated dependencies [741864f]
1581
+ - Updated dependencies [a8198de]
1582
+ - Updated dependencies [0c789a4]
1583
+ - Updated dependencies [05a49f2]
1584
+ - Updated dependencies [b234a84]
1585
+ - Updated dependencies [a78cd37]
1586
+ - Updated dependencies [5ea623e]
1587
+ - Updated dependencies [4d7d322]
1588
+ - Updated dependencies [5eabe86]
1589
+ - Updated dependencies [ca5d671]
1590
+ - Updated dependencies [32bf2d6]
1591
+ - Updated dependencies [ff0c384]
1592
+ - Updated dependencies [af4fb29]
1593
+ - Updated dependencies [c698a81]
1594
+ - Updated dependencies [ff5ef1c]
1595
+ - Updated dependencies [befd40c]
1596
+ - Updated dependencies [9a97800]
1597
+ - Updated dependencies [6bca0e4]
1598
+ - Updated dependencies [81c0bc4]
1599
+ - Updated dependencies [3c76801]
1600
+ - Updated dependencies [60500cb]
1601
+ - Updated dependencies [2fcefb9]
1602
+ - Updated dependencies [77f846a]
1603
+ - Updated dependencies [bc5870c]
1604
+ - Updated dependencies [b55a346]
1605
+ - Updated dependencies [065bba7]
1606
+ - Updated dependencies [f760064]
1607
+ - Updated dependencies [dd19463]
1608
+ - Updated dependencies [6791717]
1609
+ - Updated dependencies [8ea3bee]
1610
+ - Updated dependencies [100547e]
1611
+ - Updated dependencies [3a58149]
1612
+ - Updated dependencies [6d1c155]
1613
+ - Updated dependencies [d7573b3]
1614
+ - Updated dependencies [bf3edfe]
1615
+ - Updated dependencies [2c8474c]
1616
+ - Updated dependencies [6ce89da]
1617
+ - Updated dependencies [0e05aac]
1618
+ - Updated dependencies [ae61ad4]
1619
+ - Updated dependencies [5aed9e4]
1620
+ - Updated dependencies [83c77dc]
1621
+ - Updated dependencies [18a8e7d]
1622
+ - Updated dependencies [e7957ab]
1623
+ - Updated dependencies [f7e34ca]
1624
+ - Updated dependencies [e719ebd]
1625
+ - Updated dependencies [516583b]
1626
+ - Updated dependencies [f9e4f91]
1627
+ - Updated dependencies [6ef48b1]
1628
+ - Updated dependencies [58be55e]
1629
+ - Updated dependencies [fa429cf]
1630
+ - Updated dependencies [ed8df3e]
1631
+ - Updated dependencies [fe76ece]
1632
+ - Updated dependencies [8b446f5]
1633
+ - Updated dependencies [8e74b27]
1634
+ - Updated dependencies [7102b20]
1635
+ - Updated dependencies [8ebd57f]
1636
+ - Updated dependencies [968dc1e]
1637
+ - Updated dependencies [9a1fb41]
1638
+ - Updated dependencies [617707a]
1639
+ - Updated dependencies [c40f3b8]
1640
+ - Updated dependencies [58770f3]
1641
+ - Updated dependencies [aefe428]
1642
+ - Updated dependencies [485f096]
1643
+ - Updated dependencies [7357447]
1644
+ - Updated dependencies [199d31b]
1645
+ - Updated dependencies [b655a9d]
1646
+ - Updated dependencies [a865c73]
1647
+ - Updated dependencies [3e01cb5]
1648
+ - Updated dependencies [7138bc1]
1649
+ - Updated dependencies [cef27e2]
1650
+ - Updated dependencies [4e8622b]
1651
+ - Updated dependencies [dffd752]
1652
+ - Updated dependencies [06973aa]
1653
+ - Updated dependencies [50798f3]
1654
+ - Updated dependencies [6a576c9]
1655
+ - Updated dependencies [105f3c5]
1656
+ - Updated dependencies [3ccd9e8]
1657
+ - Updated dependencies [689b979]
1658
+ - Updated dependencies [c70f865]
1659
+ - Updated dependencies [e546222]
1660
+ - Updated dependencies [fd13f52]
1661
+ - Updated dependencies [d7bd274]
1662
+ - Updated dependencies [98c3a74]
1663
+ - Updated dependencies [fffa30d]
1664
+ - Updated dependencies [e4e9557]
1665
+ - Updated dependencies [7a28e1e]
1666
+ - Updated dependencies [ebce5a3]
1667
+ - Updated dependencies [fb336df]
1668
+ - Updated dependencies [9d9040d]
1669
+ - Updated dependencies [20e317c]
1670
+ - Updated dependencies [0fce2ef]
1671
+ - Updated dependencies [42df928]
1672
+ - Updated dependencies [0e2ddd4]
1673
+ - Updated dependencies [b7479ab]
1674
+ - Updated dependencies [9850c6e]
1675
+ - Updated dependencies [de570cc]
1676
+ - Updated dependencies [b2ea297]
1677
+ - Updated dependencies [5b5a5c3]
1678
+ - Updated dependencies [14582b8]
1679
+ - Updated dependencies [51e144e]
1680
+ - Updated dependencies [19cbf10]
1681
+ - Updated dependencies [b6e83be]
1682
+ - Updated dependencies [ab92940]
1683
+ - Updated dependencies [a691c0b]
1684
+ - Updated dependencies [0b1326d]
1685
+ - Updated dependencies [1e66879]
1686
+ - Updated dependencies [c5200f0]
1687
+ - Updated dependencies [af3861f]
1688
+ - Updated dependencies [515f171]
1689
+ - Updated dependencies [1f4e029]
1690
+ - Updated dependencies [4f14ad7]
1691
+ - Updated dependencies [258d264]
1692
+ - Updated dependencies [cac64b3]
1693
+ - Updated dependencies [4bb940b]
1694
+ - Updated dependencies [8033ad1]
1695
+ - Updated dependencies [fa140b8]
1696
+ - Updated dependencies [71cba28]
1697
+ - Updated dependencies [190fbd0]
1698
+ - Updated dependencies [c00bf28]
1699
+ - Updated dependencies [93127bd]
1700
+ - Updated dependencies [f2158ec]
1701
+ - Updated dependencies [759606e]
1702
+ - Updated dependencies [fd8dace]
1703
+ - Updated dependencies [72ffc34]
1704
+ - Updated dependencies [a51fa0c]
1705
+ - Updated dependencies [51f3d8d]
1706
+ - Updated dependencies [bf28341]
1707
+ - Updated dependencies [78cbdb5]
1708
+ - Updated dependencies [b7543a9]
1709
+ - Updated dependencies [6c6cee7]
1710
+ - Updated dependencies [42887e0]
1711
+ - Updated dependencies [f1690d4]
1712
+ - Updated dependencies [83fe6e7]
1713
+ - Updated dependencies [d1ab06f]
1714
+ - Updated dependencies [38a9568]
1715
+ - Updated dependencies [f90b8fb]
1716
+ - Updated dependencies [91783c4]
1717
+ - Updated dependencies [982885d]
1718
+ - Updated dependencies [dba7d84]
1719
+ - Updated dependencies [ca39427]
1720
+ - Updated dependencies [bd09957]
1721
+ - Updated dependencies [5a07e67]
1722
+ - Updated dependencies [2d36552]
1723
+ - Updated dependencies [45d8288]
1724
+ - Updated dependencies [b2437a7]
1725
+ - Updated dependencies [f157423]
1726
+ - Updated dependencies [7a90afd]
1727
+ - Updated dependencies [eddc1dd]
1728
+ - Updated dependencies [490f482]
1729
+ - Updated dependencies [27308c5]
1730
+ - Updated dependencies [8689166]
1731
+ - Updated dependencies [c9327c9]
1732
+ - Updated dependencies [920165d]
1733
+ - Updated dependencies [9101be5]
1734
+ - Updated dependencies [f53a8d0]
1735
+ - Updated dependencies [968dc1e]
1736
+ - Updated dependencies [57f9b07]
1737
+ - Updated dependencies [3c73d99]
1738
+ - Updated dependencies [d91aed9]
1739
+ - Updated dependencies [ed71d9e]
1740
+ - Updated dependencies [7776fc2]
1741
+ - Updated dependencies [e76634c]
1742
+ - Updated dependencies [c86185e]
1743
+ - Updated dependencies [fb96ecb]
1744
+ - Updated dependencies [1170ed1]
1745
+ - Updated dependencies [92814db]
1746
+ - Updated dependencies [4d73b07]
1747
+ - @object-ui/react@17.7.0
1748
+ - @object-ui/core@17.7.0
1749
+ - @object-ui/types@17.7.0
1750
+ - @object-ui/i18n@17.7.0
1751
+ - @object-ui/components@17.7.0
1752
+ - @object-ui/fields@17.7.0
1753
+
1754
+ ## 17.6.0
1755
+
1756
+ ### Minor Changes
1757
+
1758
+ - a945271: `DatasetReportRenderer` no longer reads `filter` as an alias for `runtimeFilter`.
1759
+
1760
+ `filter` is not an authorable key. `ReportSchema` in `@objectstack/spec` (17.0.0)
1761
+ is `z.core.$strict` and rejects it outright, going out of its way to name the
1762
+ replacement: ``Unrecognized key(s) on this report: `filter`. Did you mean
1763
+ `filter` → `runtimeFilter`?`` The renderer accepted the rejected spelling anyway,
1764
+ at two sites — the report-level `report.runtimeFilter ?? report.filter` and the
1765
+ per-joined-block `block.runtimeFilter ?? block.filter`. Metadata that could not
1766
+ be authored through the validated path still rendered when it arrived by some
1767
+ other route, so the strictness the spec promises was not the strictness the
1768
+ runtime enforced. It matters most for AI-authored metadata: a generator emitting
1769
+ `filter` got a working report from this renderer and a hard validation failure
1770
+ from anything that parsed the document first, and which one the author met was a
1771
+ function of which path the document travelled.
1772
+
1773
+ **Behaviour change — read this if you store report documents.** A stored document
1774
+ still carrying `filter` no longer has that filter applied: it renders
1775
+ **unfiltered**, showing rows the report was scoped to exclude. Server-side
1776
+ permissions are unaffected and still apply, so this is not an access-control
1777
+ change — it is a report showing more rows than its author intended. Scored
1778
+ `minor` per this repo's version policy (AGENTS.md §版本号策略), which reserves
1779
+ `major` for the synchronized `@objectstack` major bump; the narrowing is
1780
+ described here rather than encoded in the number.
1781
+
1782
+ Because rendering unfiltered *in silence* would be worse than an error, the
1783
+ dropped key is not silent. When a document carrying `filter` reaches the
1784
+ renderer, a dev-mode warning fires once per offending report or block, naming the
1785
+ key, quoting the spec's own rename hint verbatim (so an author meets one message
1786
+ rather than two dialects of one message), and stating that no filter was applied.
1787
+ It is a no-op under `NODE_ENV=production` and changes no types.
1788
+
1789
+ Fix your documents by renaming `filter` to `runtimeFilter` — the key the schema
1790
+ actually declares, and the one the suggestion has always pointed at. Reports that
1791
+ already author `runtimeFilter`, and hosts that pass the `runtimeFilter` prop, are
1792
+ entirely unaffected.
1793
+
1794
+ ### Patch Changes
1795
+
1796
+ - cb5a7de: A report's embedded chart now paints its category dimension's own option colours and renders ordered-sequence charts (funnel/pyramid) in the field's declared picklist order — the same two derivations a dashboard chart has always gotten for the identical dimension (objectui#4906).
1797
+
1798
+ `DatasetReportChart` (`DatasetReportRenderer.tsx`) resolved its dimension's option **labels** but called neither `buildOptionColorMap` nor `buildCategoryOrder` — the two `@object-ui/core` helpers `DatasetWidget` (plugin-dashboard) already runs off the same resolved field metadata. The chart forwarded only an author-supplied `colors` record (objectui#4877); with none authored it fell back to the positional palette, and a funnel's stages sorted by value instead of the declared pipeline.
1799
+
1800
+ This is convergence onto an already-ruled behavior, not new capability: the report path now runs the identical `useDatasetDimensionMeta` → `localizeFieldOptions` → `buildOptionColorMap`/`buildCategoryOrder` chain the dashboard widget uses (framework#3588's declared-picklist-order ruling), reused rather than re-derived.
1801
+
1802
+ **This visibly changes rendering for an existing report** that groups by a select/lookup dimension carrying option colours, or is declared on an ordered field:
1803
+
1804
+ - a chart with no authored `colors` now paints each category in that dimension's own option colour (e.g. a `health` dimension now paints its own green/amber/red) instead of the renderer's positional palette;
1805
+ - a `funnel`/`pyramid` chart now orders its stages by the field's declared picklist order instead of sorting by value.
1806
+
1807
+ Precedence is unchanged and preserved: an authored `colors` record (objectui#4877) still wins over the derived per-category map, merged UNDER it exactly as the dashboard already does — an author's explicit colour for a category is never overridden by the field's own.
1808
+ - 0237208: docs(plugin-report): teach the dataset-bound report as the sole authoring shape
1809
+
1810
+ `packages/plugin-report/README.md` and `content/docs/plugins/plugin-report.mdx`
1811
+ still taught the pre-9.0 query form (`objectName` + column-definition `columns` +
1812
+ `groupingsDown` / `groupingsAcross`) as the live way to write a report, and named
1813
+ three renderers plus `applyInMemoryAggregation` that were removed at the ADR-0021
1814
+ cutover. The current `ReportSchema` is strict and rejects that form outright, so
1815
+ every copyable example on both pages now authors the dataset-bound shape
1816
+ (`dataset` + `rows` / `columns` / `values`, `runtimeFilter`, `order`, `drilldown`,
1817
+ `chart`) through `defineReport`. Stored pre-9.0 documents keep one clearly
1818
+ labelled migration-only section describing the lossy bridge that renders them and
1819
+ the key-by-key direction of migration.
1820
+ - 82a9417: docs(plugin-report): rewrite the README export snippets against the real export signatures
1821
+
1822
+ The `### Export` and `### Live Export` snippets called every export function with
1823
+ the wrong arity or argument order. Every name was real, so the name-set check
1824
+ could not see it — only the calls were wrong:
1825
+
1826
+ - The six format exporters are `(report: ReportComponentSchema, data: any[], config?: ReportExportConfig): void`.
1827
+ The README called them `(data, filename)`, so a filename string landed in the
1828
+ `data` slot the engine iterates as rows, and there is no filename parameter at
1829
+ all — the download name comes from `config.filename`, else `report.title`. All
1830
+ five are synchronous `void`, so the snippet's `await` was inert.
1831
+ `exportReport` takes the format **first**, which no snippet showed.
1832
+ - `exportWithLiveData(report, options)` requires `dataSource` and `resource` in
1833
+ `LiveExportOptions`; the README passed only `{ format: 'pdf' }`.
1834
+ - `exportExcelWithFormulas(report, data, options)` takes three parameters; the
1835
+ README passed two, and spelled the column key `field` where `ExcelColumnConfig`
1836
+ has the required `name` and `header`. Formula templates use the `{ROW}`
1837
+ placeholder, which the old `SUM(B2:B100)` never exercised.
1838
+
1839
+ The rewritten blocks are the exporters' own (correct) JSDoc examples, and each
1840
+ one now compiles against the package's built `dist/index.d.ts`. Docs only — no
1841
+ API, export surface or runtime behaviour changed.
1842
+ - f331f5a: Docs only: `packages/plugin-report/README.md` no longer teaches three exports the
1843
+ package does not have (objectui#5016). Each was judged individually against the
1844
+ entry module's export surface, and all three turned out to be **survivors of the
1845
+ 9.0 cutover** rather than renames — `CHANGELOG.md` records `ReportBuilder`,
1846
+ `ScheduleConfig` and the drill helpers as removed with the pre-9.0 query-form
1847
+ renderers, and the README kept teaching them afterwards:
1848
+
1849
+ - **`ReportBuilder`** — taught as the main editor component. Removed; there is no
1850
+ authoring component in this package. The Quick Start now teaches the real ones,
1851
+ with their real signatures: `ReportRenderer` (the dispatcher, which takes the
1852
+ report as `schema`), `DatasetReportRenderer` (which takes it as `report`), and
1853
+ `ReportViewer` — whose props are `{ schema, onRefresh }`, so the old
1854
+ `< ReportViewer report={…} showToolbar />` would not have compiled either.
1855
+ `report` / `showToolbar` are keys inside a `ReportViewerSchema`.
1856
+ - **`registerDrillHandler(actionRunner, …)`** — taught as the drill registration
1857
+ call. Removed, and its mechanism no longer exists: drill-down is now a host
1858
+ callback, `onDrill?: (args: DatasetDrillArgs) => void`, and the host owns
1859
+ navigation because the renderer only knows dimension names (ADR-0021 D2). The
1860
+ section is rewritten around what a click actually emits, including why
1861
+ `objectFilter` (raw stored values) is what filters select/lookup dimensions
1862
+ correctly where a display-label `groupKey` would not.
1863
+ - **`ScheduleConfig`** — taught as a configuration component. Removed. A schedule
1864
+ is *data* on the report schema: `ReportComponentSchema.schedule`, typed
1865
+ `ReportScheduleConfig`. Both types live in `@object-ui/types` and are not
1866
+ re-exported here, so the corrected snippet imports them from there —
1867
+ `createScheduleTrigger` is the real export, and its real signature takes
1868
+ `(report, dataSource, resource, onComplete)` and returns
1869
+ `() => Promise< LiveExportResult[] >`, not the single callback the old snippet
1870
+ passed.
1871
+
1872
+ Two further leftovers of the same removal are corrected: the stale survivor
1873
+ sentence that listed `ReportBuilder` as still available, and the schema-driven
1874
+ example's `"type": "report-builder"`, which no component registers — the
1875
+ registered types are `report`, `spec-report` and `report-viewer`, now listed
1876
+ explicitly. The two feature bullets asserting the removed mechanisms (a
1877
+ `useReportData()` query pipeline, an `ActionRunner`-dispatched `drill` action)
1878
+ state the dataset-bound path instead.
1879
+
1880
+ No code, types or runtime behaviour change — the diff is one README and this
1881
+ changeset. The correction reaches npm with the package's next publish, which is
1882
+ why it declares a patch: `README.md` is in the package's published `files`.
1883
+ - 5ffcc14: fix(plugin-report): forward the chart chrome and series presentation `ReportChartSchema` declares (objectui#4877)
1884
+
1885
+ A report's embedded chart forwarded exactly six keys to the registered chart
1886
+ component — `chartType`, `data`, `height`, `isAnimationActive`, `series`,
1887
+ `xAxisKey`. Everything else `ReportChartSchema` declares as authorable never
1888
+ left the report renderer, so it was inert metadata: the author writes it, the
1889
+ schema accepts it, nothing reads it.
1890
+
1891
+ `showLegend` was the sharpest case because dropping it does not merely ignore
1892
+ the author, it INVERTS them: `AdvancedChartImpl` computes
1893
+ `legendVisible = showLegend !== false`, so an absent value means the legend is
1894
+ on and an explicit `showLegend: false` still drew one.
1895
+
1896
+ Now lowered, under objectui#4229's ruled data/presentation split:
1897
+
1898
+ - chrome — `showLegend`, `showDataLabels`, `colors` (both the positional-palette
1899
+ array and the per-category record), `subtitle`, `description`, `annotations`,
1900
+ `interaction`, `height`;
1901
+ - per-series presentation — `color`, `stack`, `type`, `yAxis`, `dashArray`,
1902
+ `opacity`, `variant`, matched by `series[].name` so series MEMBERSHIP stays
1903
+ with the dataset.
1904
+
1905
+ `title` is deliberately not forwarded: the report renderer paints it as its own
1906
+ heading above the plot, and forwarding it would draw a second one inside the
1907
+ chart's frame. `aria` is not lowered either — nothing on this path reads it
1908
+ (`AdvancedChartImpl` has no `aria` prop, and this renderer hands the component a
1909
+ schema directly rather than through `SchemaRenderer`'s flat ARIA injection), so
1910
+ forwarding it would move declared-but-unread one layer down.
1911
+
1912
+ The two helpers (`chartConfigPresentation`, `mergeAuthoredPresentation`) moved
1913
+ from `plugin-dashboard`'s `DatasetWidget` to `@object-ui/core` beside
1914
+ `buildChartSeries`, the derivation they merge onto, so both surfaces lower one
1915
+ vocabulary once instead of keeping a second copy (the duplication objectui#4389
1916
+ filed as a defect). `@object-ui/core` additionally exports `mergeAuthoredSeries`
1917
+ — the series merge alone — for a surface whose axes are bare dimension/measure
1918
+ NAME strings rather than spec `ChartAxis` objects, which is what a report chart
1919
+ declares. `DatasetWidget` re-exports both names, so its public surface and its
1920
+ rendering are unchanged.
1921
+ - 6bb39c4: 报表内嵌图表的度量显示名按三级回落解析,不再直接印原始 `name`
1922
+
1923
+ 数据集绑定的 report chart 此前把度量原样交给图表组件(`series: [{ dataKey }]`,无 label),
1924
+ 于是图例、标记 tooltip 与单值卡片的说明文字都落回 dataKey——在全中文控制台上打出
1925
+ `potential_upside_tons`,而同一张报表下方的汇总表、以及绑定同一数据集的 dashboard 图表
1926
+ 都能正确解析出授权 `label`。`ReportChartSchema` 自 rc.1 起声明的 `series[].label` 也从未
1927
+ 被读取,作者因此没有任何可授权的手段控制这个字符串。
1928
+
1929
+ 现按三级回落解析,与汇总表和 dashboard 的既有口径对齐:
1930
+
1931
+ 1. `chart.series[]` 中 `name` 命中该度量的条目的 `label`(spec 的 `I18nLabel`,按控制台
1932
+ 语言解析;同名重复以第一条为准);
1933
+ 2. 绑定数据集的度量 `label`(结果字段的 `label`,即汇总表表头一直在读的同一个值);
1934
+ 3. 度量 `name` 兜底。
1935
+
1936
+ 图例与 tooltip 同源同修:`ChartRenderer` 把 series 的 `label` 写进 `config[dataKey].label`,
1937
+ 三处读的是同一个输入。单值族(`metric`/`kpi`/`gauge`)的说明文字与系列图共用这一次解析。
1938
+ - 5ffcc14: fix(plugin-report): route a report's embedded chart through `buildChartSeries` so a NULL category is bucketed (objectui#4878)
1939
+
1940
+ `DatasetReportChart` built its rows as `relabelDimensions(state.rows, …)` and
1941
+ handed them to the registered chart component verbatim. Nothing on that path
1942
+ bucketed a null dimension value, so a report chart passed the renderer a null
1943
+ category — the exact input objectui#4466 measured as drawing **no mark at all**.
1944
+ The cost is not an empty chart but a quietly wrong one: the null group vanishes
1945
+ while the y-axis scale still accommodates it, so the chart reads as valid data.
1946
+
1947
+ The dashboard and chart-view surfaces never had the defect because they route
1948
+ through `buildChartSeries` (`@object-ui/core`), where the whole null-category
1949
+ family was fixed. The report chart now routes through it too, so those
1950
+ properties are INHERITED rather than re-derived on a third surface:
1951
+
1952
+ - the null bucket itself (objectui#4466);
1953
+ - its label read from the locale bundle at the call site — `@object-ui/core` is
1954
+ React-free, so a zh console would otherwise draw the bar and label it `(None)`
1955
+ (objectui#4500);
1956
+ - bucket IDENTITY separate from the bucket label, so a stored value that
1957
+ literally spells `(None)` stays a different group (objectui#4508).
1958
+
1959
+ objectui#4020's three-level measure display name still outranks the label the
1960
+ derivation assigns, including for an `{ en, 'zh-CN' }` label record: core holds
1961
+ no i18n provider and picks first-string-wins, which is exactly the defect class
1962
+ #4020 closed.
1963
+
1964
+ A report whose chart has no null group is unchanged, byte for byte.
1965
+ - Updated dependencies [88085e3]
1966
+ - Updated dependencies [69251bf]
1967
+ - Updated dependencies [57e668f]
1968
+ - Updated dependencies [516663d]
1969
+ - Updated dependencies [41ac1b7]
1970
+ - Updated dependencies [1eaf0a1]
1971
+ - Updated dependencies [a09bc33]
1972
+ - Updated dependencies [feb6b16]
1973
+ - Updated dependencies [460c4d0]
1974
+ - Updated dependencies [0ae27f7]
1975
+ - Updated dependencies [9aecabe]
1976
+ - Updated dependencies [2533ec5]
1977
+ - Updated dependencies [78c0f9a]
1978
+ - Updated dependencies [bbe8b86]
1979
+ - Updated dependencies [8477be5]
1980
+ - Updated dependencies [279fb13]
1981
+ - Updated dependencies [2e82ab2]
1982
+ - Updated dependencies [ad07b65]
1983
+ - Updated dependencies [41f498b]
1984
+ - Updated dependencies [ef0d150]
1985
+ - Updated dependencies [f34226e]
1986
+ - Updated dependencies [564b605]
1987
+ - Updated dependencies [e1d4251]
1988
+ - Updated dependencies [40d3a33]
1989
+ - Updated dependencies [8b9dc62]
1990
+ - Updated dependencies [1184192]
1991
+ - Updated dependencies [a2a9747]
1992
+ - Updated dependencies [65e88e6]
1993
+ - Updated dependencies [a1609a6]
1994
+ - Updated dependencies [53f23bc]
1995
+ - Updated dependencies [c4533dc]
1996
+ - Updated dependencies [be60815]
1997
+ - Updated dependencies [37f6844]
1998
+ - Updated dependencies [93de4f6]
1999
+ - Updated dependencies [2b50261]
2000
+ - Updated dependencies [384f30d]
2001
+ - Updated dependencies [ac600e5]
2002
+ - Updated dependencies [97fba31]
2003
+ - Updated dependencies [232f61a]
2004
+ - Updated dependencies [d374caf]
2005
+ - Updated dependencies [5673576]
2006
+ - Updated dependencies [c1ef923]
2007
+ - Updated dependencies [911ceaa]
2008
+ - Updated dependencies [98eab36]
2009
+ - Updated dependencies [375efb4]
2010
+ - Updated dependencies [af5e292]
2011
+ - Updated dependencies [3fbbea1]
2012
+ - Updated dependencies [0bffb18]
2013
+ - Updated dependencies [3e0214c]
2014
+ - Updated dependencies [800f455]
2015
+ - Updated dependencies [dbbd38a]
2016
+ - Updated dependencies [27c9cbd]
2017
+ - Updated dependencies [5458414]
2018
+ - Updated dependencies [3241559]
2019
+ - Updated dependencies [7f96b10]
2020
+ - Updated dependencies [167ec42]
2021
+ - Updated dependencies [616a2a5]
2022
+ - Updated dependencies [6c68b13]
2023
+ - Updated dependencies [0046d8f]
2024
+ - Updated dependencies [f1d4748]
2025
+ - Updated dependencies [bea374e]
2026
+ - Updated dependencies [b1119ec]
2027
+ - Updated dependencies [5607092]
2028
+ - Updated dependencies [9f23d2b]
2029
+ - Updated dependencies [b4089be]
2030
+ - Updated dependencies [578e025]
2031
+ - Updated dependencies [b4bccc7]
2032
+ - Updated dependencies [af025ee]
2033
+ - Updated dependencies [d109a4d]
2034
+ - Updated dependencies [598c89a]
2035
+ - Updated dependencies [4a0bd17]
2036
+ - Updated dependencies [b8b9af4]
2037
+ - Updated dependencies [31676be]
2038
+ - Updated dependencies [8c0d52e]
2039
+ - Updated dependencies [b29488f]
2040
+ - Updated dependencies [9fbb9b5]
2041
+ - Updated dependencies [90517e1]
2042
+ - Updated dependencies [aff10e2]
2043
+ - Updated dependencies [70a774b]
2044
+ - Updated dependencies [9ce096f]
2045
+ - Updated dependencies [e05db88]
2046
+ - Updated dependencies [7458a41]
2047
+ - Updated dependencies [ad13d63]
2048
+ - Updated dependencies [5ffcc14]
2049
+ - Updated dependencies [d971e51]
2050
+ - Updated dependencies [97abb24]
2051
+ - Updated dependencies [deb157a]
2052
+ - Updated dependencies [9c60144]
2053
+ - Updated dependencies [e7747f1]
2054
+ - Updated dependencies [d2ce342]
2055
+ - Updated dependencies [9695da7]
2056
+ - Updated dependencies [ac2f332]
2057
+ - Updated dependencies [a777058]
2058
+ - Updated dependencies [75444e3]
2059
+ - Updated dependencies [58b8346]
2060
+ - Updated dependencies [2d0bd16]
2061
+ - Updated dependencies [a9e17b4]
2062
+ - Updated dependencies [b8ce7dc]
2063
+ - Updated dependencies [dad51e5]
2064
+ - Updated dependencies [1c9c342]
2065
+ - Updated dependencies [787c738]
2066
+ - Updated dependencies [8396656]
2067
+ - Updated dependencies [dbbd38a]
2068
+ - Updated dependencies [2165d88]
2069
+ - Updated dependencies [8871c14]
2070
+ - Updated dependencies [93fe362]
2071
+ - Updated dependencies [dfc6975]
2072
+ - Updated dependencies [3cf4de0]
2073
+ - Updated dependencies [c9dc811]
2074
+ - Updated dependencies [144ef9b]
2075
+ - Updated dependencies [138ab04]
2076
+ - Updated dependencies [a0b9e91]
2077
+ - Updated dependencies [99bd015]
2078
+ - Updated dependencies [21e4585]
2079
+ - @object-ui/types@17.6.0
2080
+ - @object-ui/fields@17.6.0
2081
+ - @object-ui/i18n@17.6.0
2082
+ - @object-ui/react@17.6.0
2083
+ - @object-ui/plugin-grid@17.6.0
2084
+ - @object-ui/components@17.6.0
2085
+ - @object-ui/core@17.6.0
2086
+
3
2087
  ## 17.5.0
4
2088
 
5
2089
  ### Patch Changes