@object-ui/runner 16.1.0 → 17.2.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 +300 -0
- package/dist/assets/AdvancedChartImpl-B2AuLx_i.js +15 -0
- package/dist/assets/BarChart-Cwm0dWPb.js +55 -0
- package/dist/assets/ChartImpl-KP7sL8kL.js +1 -0
- package/dist/assets/KanbanEnhanced-s5ZgUlos.js +1 -0
- package/dist/assets/KanbanImpl-CILlpN3x.js +1 -0
- package/dist/assets/{dist-B6axm7cl.js → dist-Ci3Il4z5.js} +2 -2
- package/dist/assets/index-CTpMWBiE.css +1 -0
- package/dist/assets/index-D6UnbybU.js +242 -0
- package/dist/assets/{react-B8IZ02wI.js → react-mKr9-DnF.js} +1 -1
- package/dist/assets/{sortable.esm-ygc_40Sr.js → sortable.esm-D_ux8IqA.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +14 -11
- package/dist/assets/AdvancedChartImpl-DSubPKwv.js +0 -15
- package/dist/assets/BarChart-obXBUyeN.js +0 -55
- package/dist/assets/ChartImpl-grWFrzXi.js +0 -1
- package/dist/assets/KanbanEnhanced-L1ZUp8cq.js +0 -1
- package/dist/assets/KanbanImpl-DAiv-7en.js +0 -1
- package/dist/assets/index-B2jv-ZLJ.css +0 -1
- package/dist/assets/index-BSf5yxlv.js +0 -224
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,305 @@
|
|
|
1
1
|
# @object-ui/runner
|
|
2
2
|
|
|
3
|
+
## 17.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 4a51e77: Stop declaring 14 symbols across ten packages under names `@objectstack/spec`
|
|
8
|
+
owns (objectui#3161, objectstack#4115 batch 7 — the long tail, one or two
|
|
9
|
+
entries per package). All ten packages leave the ledger, which drops from 17
|
|
10
|
+
collisions across 11 packages to 3 across 1.
|
|
11
|
+
|
|
12
|
+
**Renamed exports** — in every case the spec exports the same name for a
|
|
13
|
+
_different_ thing, so the old name was a mis-description rather than a dialect:
|
|
14
|
+
|
|
15
|
+
| package | was | now | what the spec's same-named export is |
|
|
16
|
+
| :------------------------- | :--------------------------------- | :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| `@object-ui/fields` | `FieldWidgetProps` | `FieldWidgetComponentProps` | the DECLARED field-widget plugin props contract (a zod object; `field.type` is the `FieldType` enum, `readonly`/`required` carry defaults) |
|
|
18
|
+
| `@object-ui/layout` | `PageHeaderProps` | `PageHeaderComponentProps` | the authored `page:header` node — a zod schema of `title`, `subtitle`, an icon NAME, `breadcrumb`, `actions: string[]` |
|
|
19
|
+
| `@object-ui/layout` | `Page` | `PageNodeRenderer` | the authored page metadata DOCUMENT (`name`, `label`, `type`, `regions`) |
|
|
20
|
+
| `@object-ui/plugin-detail` | `ObjectFieldLike` | `ObjectDefFieldLike` | the i18n duck type `translateObject` walks (`help`/`description`, plus `[key: string]: any`) |
|
|
21
|
+
| `@object-ui/plugin-grid` | `ColumnSummaryConfig` | `ColumnSummarySetting` | the OBJECT form of `ListColumn.summary` **only** — the local one was the whole union, shorthand included |
|
|
22
|
+
| `@object-ui/plugin-grid` | `isMultiValueField` | `hasMultiValueShape` | the spec's classifier, which requires a def with a `type`; the local one is called with `undefined` |
|
|
23
|
+
| `@object-ui/collaboration` | `RealtimeConfig` | `RealtimeSubscriptionConfig` | the app's realtime DECLARATION (`enabled`, `transport`, `subscriptions[]`) |
|
|
24
|
+
| `@object-ui/plugin-charts` | `ChartConfig` | `ChartContainerConfig` | the authored chart document (`type`, `xAxis`, `series`, `showLegend`, …) |
|
|
25
|
+
| `@object-ui/plugin-form` | `FormSection` / `FormSectionProps` | `FormSectionContainer` / `FormSectionContainerProps` | the authored form-section metadata (`name`, `pane`, `visibleWhen`, `fields`) |
|
|
26
|
+
| `@object-ui/providers` | `Theme` | `ThemePreference` | a whole theme DOCUMENT (`name`, `label`, `colors`, `typography`) |
|
|
27
|
+
| `@object-ui/runner` | `App` (default export) | `RunnerApp` | the authored application metadata type **and** the `App.create()` builder |
|
|
28
|
+
| `@object-ui/sdui-parser` | `ValidationResult` | `ManifestValidationResult` | plugin-manifest validation (`{ valid, errors?, warnings? }`), exported from both `kernel` and `contracts` |
|
|
29
|
+
|
|
30
|
+
`ManifestValidationResult` follows the `<what was validated>Validation<Error|Result>`
|
|
31
|
+
convention registered on objectstack#4115 (`@object-ui/core` took
|
|
32
|
+
`SchemaNodeValidationResult` in batch 4). `PageHeaderComponentProps` deliberately
|
|
33
|
+
reuses the name `@object-ui/app-shell` already chose for its own header props in
|
|
34
|
+
batch 3, so one concept does not acquire two dialect names one package apart.
|
|
35
|
+
|
|
36
|
+
**Now derived from the spec instead of hand-written:**
|
|
37
|
+
|
|
38
|
+
- `@object-ui/fields` — `isFileIdToken` is re-exported from
|
|
39
|
+
`@objectstack/spec/data`. The local copy was character-for-character identical
|
|
40
|
+
to the spec's function while its comment said it "mirrors" it, so every
|
|
41
|
+
behaviour test passed and only reference identity could tell the two apart.
|
|
42
|
+
The regex is a wire decision: widening it server-side while a copy here kept
|
|
43
|
+
the old bound would make every new id read as "not a reference", and the
|
|
44
|
+
widget would submit the legacy inline blob to a backend expecting a reference.
|
|
45
|
+
- `@object-ui/plugin-detail` — `FeedFilterMode` is re-exported from
|
|
46
|
+
`@objectstack/spec/data`, in a file that already imported the sibling
|
|
47
|
+
`FeedItemType` from the spec.
|
|
48
|
+
- `@object-ui/plugin-grid` — the eleven-member aggregation union is now the
|
|
49
|
+
spec's `ColumnSummary` enum, so the total `Record<ColumnSummaryType, string>`
|
|
50
|
+
label map turns a member the spec adds into a compile error instead of a
|
|
51
|
+
blank footer cell. `ColumnSummarySetting` is `NonNullable<ListColumn['summary']>`,
|
|
52
|
+
i.e. whatever forms the spec itself accepts. `hasMultiValueShape` delegates to
|
|
53
|
+
the spec's `isMultiValueField` rather than re-deriving it from
|
|
54
|
+
`MULTI_OPTION_TYPES` / `MULTI_CAPABLE_TYPES`.
|
|
55
|
+
- `@object-ui/providers` — `ThemePreference` is the spec's `ThemeMode` union
|
|
56
|
+
plus the one legacy `'system'` spelling this provider still honours for stored
|
|
57
|
+
preferences, read off the schema's own `_zod` carrier so the package takes no
|
|
58
|
+
zod dependency.
|
|
59
|
+
|
|
60
|
+
`@objectstack/spec` moves from `devDependencies` to `dependencies` in
|
|
61
|
+
`@object-ui/fields` (it re-exports a runtime function) and `@object-ui/providers`
|
|
62
|
+
(its public `.d.ts` now references the spec).
|
|
63
|
+
|
|
64
|
+
Scored `minor`, not `major`, per this repo's fixed-group rule — objectui's major
|
|
65
|
+
tracks `@objectstack`, so breaking changes of our own ship as minor with the
|
|
66
|
+
semantics spelled out above (see AGENTS.md §版本号策略). A `major` here would carry
|
|
67
|
+
all 39 packages of the fixed group to `18.0.0` and off objectstack's 17.x line.
|
|
68
|
+
|
|
69
|
+
### Patch Changes
|
|
70
|
+
|
|
71
|
+
- Updated dependencies [4ae0ac4]
|
|
72
|
+
- Updated dependencies [696e3c1]
|
|
73
|
+
- Updated dependencies [bca45cc]
|
|
74
|
+
- Updated dependencies [a889e31]
|
|
75
|
+
- Updated dependencies [09d30a4]
|
|
76
|
+
- Updated dependencies [4bf612c]
|
|
77
|
+
- Updated dependencies [335041c]
|
|
78
|
+
- Updated dependencies [b414983]
|
|
79
|
+
- Updated dependencies [256f8cc]
|
|
80
|
+
- Updated dependencies [d9668a7]
|
|
81
|
+
- Updated dependencies [cb82705]
|
|
82
|
+
- Updated dependencies [f572849]
|
|
83
|
+
- Updated dependencies [4a51e77]
|
|
84
|
+
- Updated dependencies [f6e8d78]
|
|
85
|
+
- Updated dependencies [ea96284]
|
|
86
|
+
- Updated dependencies [d3584c6]
|
|
87
|
+
- Updated dependencies [a8ad6c0]
|
|
88
|
+
- Updated dependencies [444457c]
|
|
89
|
+
- Updated dependencies [850033c]
|
|
90
|
+
- Updated dependencies [022e4c3]
|
|
91
|
+
- Updated dependencies [009e25d]
|
|
92
|
+
- Updated dependencies [726b89c]
|
|
93
|
+
- @object-ui/types@17.2.0
|
|
94
|
+
- @object-ui/components@17.2.0
|
|
95
|
+
- @object-ui/core@17.2.0
|
|
96
|
+
- @object-ui/react@17.2.0
|
|
97
|
+
- @object-ui/plugin-charts@17.2.0
|
|
98
|
+
- @object-ui/plugin-kanban@17.2.0
|
|
99
|
+
|
|
100
|
+
## 17.1.0
|
|
101
|
+
|
|
102
|
+
### Patch Changes
|
|
103
|
+
|
|
104
|
+
- Updated dependencies [62311b6]
|
|
105
|
+
- Updated dependencies [fc0272a]
|
|
106
|
+
- Updated dependencies [9e7349e]
|
|
107
|
+
- Updated dependencies [8864971]
|
|
108
|
+
- Updated dependencies [c785740]
|
|
109
|
+
- Updated dependencies [b41f401]
|
|
110
|
+
- Updated dependencies [19e9fa0]
|
|
111
|
+
- Updated dependencies [95b7214]
|
|
112
|
+
- Updated dependencies [7d9734d]
|
|
113
|
+
- Updated dependencies [6ae818e]
|
|
114
|
+
- Updated dependencies [f1c04b6]
|
|
115
|
+
- Updated dependencies [9eb932b]
|
|
116
|
+
- Updated dependencies [746dd00]
|
|
117
|
+
- Updated dependencies [aebfa4f]
|
|
118
|
+
- Updated dependencies [38ca8be]
|
|
119
|
+
- Updated dependencies [68ef584]
|
|
120
|
+
- Updated dependencies [4952edf]
|
|
121
|
+
- Updated dependencies [7f0252e]
|
|
122
|
+
- Updated dependencies [c4d7b20]
|
|
123
|
+
- Updated dependencies [c769d3d]
|
|
124
|
+
- Updated dependencies [7639a61]
|
|
125
|
+
- Updated dependencies [94e63ef]
|
|
126
|
+
- Updated dependencies [c735bf7]
|
|
127
|
+
- Updated dependencies [02aef0c]
|
|
128
|
+
- Updated dependencies [6f29aa5]
|
|
129
|
+
- Updated dependencies [c4db402]
|
|
130
|
+
- Updated dependencies [5319bf1]
|
|
131
|
+
- Updated dependencies [49e5671]
|
|
132
|
+
- Updated dependencies [9a04d25]
|
|
133
|
+
- Updated dependencies [b5b97e2]
|
|
134
|
+
- Updated dependencies [f59f2c1]
|
|
135
|
+
- Updated dependencies [07de839]
|
|
136
|
+
- Updated dependencies [2a40b5e]
|
|
137
|
+
- Updated dependencies [df613fa]
|
|
138
|
+
- Updated dependencies [4874117]
|
|
139
|
+
- Updated dependencies [ad0183a]
|
|
140
|
+
- Updated dependencies [ce08d55]
|
|
141
|
+
- Updated dependencies [eb4b740]
|
|
142
|
+
- Updated dependencies [5b084eb]
|
|
143
|
+
- Updated dependencies [aa1240a]
|
|
144
|
+
- Updated dependencies [2374a49]
|
|
145
|
+
- Updated dependencies [390c071]
|
|
146
|
+
- Updated dependencies [d10f526]
|
|
147
|
+
- Updated dependencies [2d5d594]
|
|
148
|
+
- Updated dependencies [ea7f477]
|
|
149
|
+
- Updated dependencies [379728f]
|
|
150
|
+
- Updated dependencies [7f23cd0]
|
|
151
|
+
- Updated dependencies [0ded602]
|
|
152
|
+
- Updated dependencies [24e0e0a]
|
|
153
|
+
- Updated dependencies [3a6cf24]
|
|
154
|
+
- Updated dependencies [aa35561]
|
|
155
|
+
- Updated dependencies [03bd53b]
|
|
156
|
+
- Updated dependencies [3c1f321]
|
|
157
|
+
- Updated dependencies [a045a32]
|
|
158
|
+
- Updated dependencies [912496d]
|
|
159
|
+
- Updated dependencies [80edbd4]
|
|
160
|
+
- Updated dependencies [9867281]
|
|
161
|
+
- @object-ui/core@17.1.0
|
|
162
|
+
- @object-ui/components@17.1.0
|
|
163
|
+
- @object-ui/react@17.1.0
|
|
164
|
+
- @object-ui/types@17.1.0
|
|
165
|
+
- @object-ui/plugin-charts@17.1.0
|
|
166
|
+
- @object-ui/plugin-kanban@17.1.0
|
|
167
|
+
|
|
168
|
+
## 17.0.0
|
|
169
|
+
|
|
170
|
+
### Patch Changes
|
|
171
|
+
|
|
172
|
+
- b076050: fix(console,runner): the approvals inbox renders against one ticking clock, and both packages now run ESLint
|
|
173
|
+
|
|
174
|
+
`apps/console` and `packages/runner` had no `lint` script, so `turbo run lint`
|
|
175
|
+
skipped them silently and their 17 ESLint **errors** had never been seen
|
|
176
|
+
(#2923 declared them as DEBT; this closes the gap). Both now carry
|
|
177
|
+
`"lint": "eslint ."` and the `DEBT` list in `scripts/check-lint-coverage.mjs`
|
|
178
|
+
is empty — every workspace package is linted.
|
|
179
|
+
|
|
180
|
+
What the errors actually were, once read one by one:
|
|
181
|
+
|
|
182
|
+
- **8x `react-hooks/purity` — real, and user-visible.** The approvals inbox
|
|
183
|
+
read `Date.now()` mid-render for every age tint, "5m ago" label and SLA chip.
|
|
184
|
+
Render must be pure: the output depended on when React happened to render, so
|
|
185
|
+
it disagreed with itself under StrictMode's double render and then **froze** —
|
|
186
|
+
an inbox left open kept saying "just now" and an SLA countdown never counted
|
|
187
|
+
down. The page now renders against a single `now` held in state and advanced
|
|
188
|
+
once a minute (the finest granularity anything here displays), so render is a
|
|
189
|
+
pure function of props+state _and_ the figures actually tick.
|
|
190
|
+
- Alongside that, `sla_due_at` is now parsed through a guard. A due date the
|
|
191
|
+
backend sends in a shape `Date.parse` can't read used to render as
|
|
192
|
+
"SLA NaNh left"; it now renders nothing.
|
|
193
|
+
- **1x `react-hooks/static-components` — real.** `StatusBadge` was declared
|
|
194
|
+
inside `ApprovalsInboxPage`, making it a brand-new component type on every
|
|
195
|
+
render, so React unmounted and remounted every status chip in the table each
|
|
196
|
+
time the page re-rendered. Hoisted to module scope, with the translated label
|
|
197
|
+
passed as a prop.
|
|
198
|
+
- **6x `react-hooks/static-components` — false positives** (3 in the console's
|
|
199
|
+
settings pages, 3 in the runner's `LayoutRenderer`). All six render the result
|
|
200
|
+
of `getIcon`/`getLazyIcon`, which memoises per name in a module-level cache —
|
|
201
|
+
the component reference is stable across renders and nothing is created during
|
|
202
|
+
render. The rule cannot see through the call, so these carry the same targeted
|
|
203
|
+
`eslint-disable-next-line` + justification the repo already uses at a dozen
|
|
204
|
+
icon-registry sites, and the resolvers themselves now say so in a comment.
|
|
205
|
+
(Verified rather than assumed: typing into a settings field keeps focus and
|
|
206
|
+
every character, so no state was ever being reset there.)
|
|
207
|
+
- **2 minor.** A dead `token` initializer on the console's auth preflight path
|
|
208
|
+
(`no-useless-assignment` — read, not blind-deleted: no intended write was
|
|
209
|
+
missing, every path out of the try/catch either assigns or returns), and a
|
|
210
|
+
`prefer-const` in the SDUI workbench preview.
|
|
211
|
+
|
|
212
|
+
- b39f4b3: fix(runner): type-check the package at all, and fix the `DataSource` contract violation that hid behind a broken import (#2917)
|
|
213
|
+
|
|
214
|
+
`@object-ui/runner` was the worst-covered package in the repo: `build` is
|
|
215
|
+
`vite build` (transpile only), it had no `type-check` script, and — uniquely —
|
|
216
|
+
**no `tsconfig.json` at all**. Nothing had ever type-checked it, despite it being
|
|
217
|
+
a published package.
|
|
218
|
+
|
|
219
|
+
**It was not broken at runtime.** The two bad imports were `import type`, so they
|
|
220
|
+
were erased before they could fail, and the one value import
|
|
221
|
+
(`emulateBatchTransaction`) does exist. `MockDataSource` is also unreferenced
|
|
222
|
+
anywhere in the repo. So this is a correctness and reference-quality fix, not an
|
|
223
|
+
outage.
|
|
224
|
+
|
|
225
|
+
**What the missing check actually hid.** `DataSource` and
|
|
226
|
+
`BatchTransactionOperation` were imported from `@object-ui/core`, which does not
|
|
227
|
+
export them — they live in `@object-ui/types`. Because that import never
|
|
228
|
+
resolved, `class MockDataSource implements DataSource` was silently a no-op, and
|
|
229
|
+
three separate commits maintained the class _as if_ it were being verified
|
|
230
|
+
(`62b9ab510` added `batchTransaction`, `09d9669c7` made `getObjectSchema`
|
|
231
|
+
required, `5527388b0` added input validation). With the `implements` clause
|
|
232
|
+
inert, a real contract violation survived all three:
|
|
233
|
+
|
|
234
|
+
```ts
|
|
235
|
+
async find(resource: string, params?: any): Promise<any[]> { return []; }
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
`DataSource.find` returns a `QueryResult` envelope, not a bare array. Anyone
|
|
239
|
+
copying this mock as the starting point for their own adapter — which is exactly
|
|
240
|
+
what its doc comment invites — would hand every consumer an array where `.data`
|
|
241
|
+
and `.total` are `undefined`. Now typed as `Promise<QueryResult>` and returning
|
|
242
|
+
`{ data: [], total: 0 }`.
|
|
243
|
+
|
|
244
|
+
Also in this change:
|
|
245
|
+
|
|
246
|
+
- `packages/runner/tsconfig.json` added, mirroring `apps/console` rather than the
|
|
247
|
+
library packages: `runner` is a Vite app, so it wants `bundler` resolution,
|
|
248
|
+
`allowImportingTsExtensions` (for `./App.tsx`) and `types: ["vite/client"]`
|
|
249
|
+
(for `import.meta.glob` in `MetadataLoader` and the `./index.css` side-effect
|
|
250
|
+
import). Keeping it standalone instead of extending the root config also means
|
|
251
|
+
it never inherits the root `paths`, so workspace deps resolve through built
|
|
252
|
+
`.d.ts` and the TS6059 `rootDir` class of error cannot appear.
|
|
253
|
+
- unused parameters prefixed with `_` (6x in `mockDataSource`), and an unused
|
|
254
|
+
`Circle` icon import dropped from `LayoutRenderer`.
|
|
255
|
+
- `"type-check": "tsc --noEmit"` added, and the package's `DEBT` entry deleted
|
|
256
|
+
from `scripts/check-type-check-coverage.mjs`. Coverage goes 35 -> 36 of 45 and
|
|
257
|
+
outstanding errors 46 -> 32.
|
|
258
|
+
|
|
259
|
+
Verified the gate genuinely covers the package now, rather than trusting the
|
|
260
|
+
green: injecting a type error into `runner/src/App.tsx` makes `pnpm type-check`
|
|
261
|
+
fail with `Failed: @object-ui/runner#type-check`, which was impossible before
|
|
262
|
+
this change.
|
|
263
|
+
|
|
264
|
+
- Updated dependencies [7b21891]
|
|
265
|
+
- Updated dependencies [952b978]
|
|
266
|
+
- Updated dependencies [de5e40c]
|
|
267
|
+
- Updated dependencies [aa88056]
|
|
268
|
+
- Updated dependencies [1767124]
|
|
269
|
+
- Updated dependencies [8ecf5a6]
|
|
270
|
+
- Updated dependencies [7b35e4b]
|
|
271
|
+
- Updated dependencies [8fb1295]
|
|
272
|
+
- Updated dependencies [e16ed2d]
|
|
273
|
+
- Updated dependencies [f9bbddb]
|
|
274
|
+
- Updated dependencies [dfd3705]
|
|
275
|
+
- Updated dependencies [c77108c]
|
|
276
|
+
- Updated dependencies [2735de6]
|
|
277
|
+
- Updated dependencies [c19ac11]
|
|
278
|
+
- Updated dependencies [6dee2cb]
|
|
279
|
+
- Updated dependencies [c7cff19]
|
|
280
|
+
- Updated dependencies [ba73a02]
|
|
281
|
+
- Updated dependencies [cd09a7b]
|
|
282
|
+
- Updated dependencies [f1abf0e]
|
|
283
|
+
- Updated dependencies [f05b84e]
|
|
284
|
+
- Updated dependencies [2f947e4]
|
|
285
|
+
- Updated dependencies [7d46648]
|
|
286
|
+
- Updated dependencies [6e8fd3c]
|
|
287
|
+
- Updated dependencies [9b53d72]
|
|
288
|
+
- Updated dependencies [662bdf9]
|
|
289
|
+
- Updated dependencies [059a052]
|
|
290
|
+
- Updated dependencies [53642d4]
|
|
291
|
+
- Updated dependencies [8aae006]
|
|
292
|
+
- Updated dependencies [c6cfdf1]
|
|
293
|
+
- Updated dependencies [d147a13]
|
|
294
|
+
- Updated dependencies [c6aaed8]
|
|
295
|
+
- Updated dependencies [dc334da]
|
|
296
|
+
- @object-ui/components@17.0.0
|
|
297
|
+
- @object-ui/react@17.0.0
|
|
298
|
+
- @object-ui/plugin-charts@17.0.0
|
|
299
|
+
- @object-ui/types@17.0.0
|
|
300
|
+
- @object-ui/core@17.0.0
|
|
301
|
+
- @object-ui/plugin-kanban@17.0.0
|
|
302
|
+
|
|
3
303
|
## 16.1.0
|
|
4
304
|
|
|
5
305
|
### Minor Changes
|