@objectstack/plugin-reports 17.0.0-rc.6 → 17.1.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,1390 @@
1
1
  # @objectstack/plugin-reports
2
2
 
3
+ ## 17.1.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [56656aa]
8
+ - Updated dependencies [c9f5950]
9
+ - Updated dependencies [d6e80b2]
10
+ - Updated dependencies [07e630e]
11
+ - Updated dependencies [66beee0]
12
+ - Updated dependencies [2f65b1b]
13
+ - Updated dependencies [720ee95]
14
+ - Updated dependencies [f287435]
15
+ - Updated dependencies [2782805]
16
+ - Updated dependencies [e43d63a]
17
+ - Updated dependencies [9aa8890]
18
+ - Updated dependencies [7c9c1dd]
19
+ - Updated dependencies [03520eb]
20
+ - Updated dependencies [75b7c24]
21
+ - Updated dependencies [d5552ca]
22
+ - Updated dependencies [d9813a9]
23
+ - Updated dependencies [8640fb2]
24
+ - Updated dependencies [2420641]
25
+ - Updated dependencies [2ad91c3]
26
+ - Updated dependencies [f57fb38]
27
+ - Updated dependencies [00777a0]
28
+ - Updated dependencies [d491625]
29
+ - Updated dependencies [420804d]
30
+ - Updated dependencies [716ac9b]
31
+ - Updated dependencies [a38408a]
32
+ - Updated dependencies [62b1427]
33
+ - Updated dependencies [7ea1372]
34
+ - Updated dependencies [23abe27]
35
+ - Updated dependencies [985a9cd]
36
+ - Updated dependencies [5f5e234]
37
+ - Updated dependencies [a8189ae]
38
+ - Updated dependencies [26e70fb]
39
+ - Updated dependencies [42b05af]
40
+ - Updated dependencies [2b292ce]
41
+ - Updated dependencies [abcf853]
42
+ - Updated dependencies [8b9eba5]
43
+ - Updated dependencies [d575779]
44
+ - Updated dependencies [94f7ef8]
45
+ - Updated dependencies [c5ac5e4]
46
+ - Updated dependencies [a777944]
47
+ - Updated dependencies [dd88e1c]
48
+ - Updated dependencies [856527c]
49
+ - Updated dependencies [870f710]
50
+ - Updated dependencies [79c46da]
51
+ - Updated dependencies [7ff3975]
52
+ - Updated dependencies [29d055b]
53
+ - Updated dependencies [65589d6]
54
+ - Updated dependencies [2c86fe3]
55
+ - Updated dependencies [e196c6a]
56
+ - Updated dependencies [24173e9]
57
+ - Updated dependencies [4ab7523]
58
+ - Updated dependencies [19539b4]
59
+ - Updated dependencies [f8eb736]
60
+ - Updated dependencies [11b779e]
61
+ - Updated dependencies [739fe5b]
62
+ - Updated dependencies [4bfe1a5]
63
+ - Updated dependencies [2065e31]
64
+ - Updated dependencies [b69d0f5]
65
+ - Updated dependencies [4d47afe]
66
+ - Updated dependencies [e4e5c6e]
67
+ - Updated dependencies [9a56784]
68
+ - Updated dependencies [d00d2f6]
69
+ - Updated dependencies [df0c12d]
70
+ - Updated dependencies [d31785f]
71
+ - Updated dependencies [c308a4f]
72
+ - Updated dependencies [e2899f6]
73
+ - Updated dependencies [3851f87]
74
+ - Updated dependencies [2a29caa]
75
+ - Updated dependencies [09a6eee]
76
+ - Updated dependencies [1a7f907]
77
+ - Updated dependencies [cd455c8]
78
+ - Updated dependencies [e1bb0ca]
79
+ - Updated dependencies [30d3752]
80
+ - Updated dependencies [c80e7ae]
81
+ - Updated dependencies [09a9a8a]
82
+ - Updated dependencies [07026cf]
83
+ - Updated dependencies [5d4f3d5]
84
+ - Updated dependencies [4d80e8b]
85
+ - Updated dependencies [30b1c63]
86
+ - Updated dependencies [079b457]
87
+ - Updated dependencies [e43b211]
88
+ - Updated dependencies [890b38f]
89
+ - Updated dependencies [8bee54b]
90
+ - Updated dependencies [04f8fdb]
91
+ - Updated dependencies [7a537ce]
92
+ - Updated dependencies [593c4bf]
93
+ - Updated dependencies [6158146]
94
+ - Updated dependencies [84cb121]
95
+ - Updated dependencies [ca19ee8]
96
+ - Updated dependencies [a675b4d]
97
+ - Updated dependencies [b887013]
98
+ - Updated dependencies [ff08691]
99
+ - Updated dependencies [60e0f90]
100
+ - Updated dependencies [90c5285]
101
+ - Updated dependencies [402c125]
102
+ - Updated dependencies [7901b2d]
103
+ - Updated dependencies [56bca91]
104
+ - Updated dependencies [b3f9831]
105
+ - Updated dependencies [79394d7]
106
+ - Updated dependencies [730fd9a]
107
+ - Updated dependencies [44bc51d]
108
+ - Updated dependencies [73cfddf]
109
+ - Updated dependencies [d634e66]
110
+ - @objectstack/spec@17.1.0
111
+ - @objectstack/platform-objects@17.1.0
112
+ - @objectstack/core@17.1.0
113
+
114
+ ## 17.0.0
115
+
116
+ ### Major Changes
117
+
118
+ - 4ed7ed4: feat(security)!: the export axis is now OPT-IN, explainable, and covers reports (#3544, #3710)
119
+
120
+ **BREAKING — `allowExport` unset no longer means "inherit read".** Reading a
121
+ record and taking a bulk machine-readable copy of the whole table are different
122
+ privileges (Salesforce "Export Reports", Dynamics "Export to Excel", NetSuite
123
+ "Export Lists", SAP `S_GUI` 61 all separate them). The axis now says so.
124
+
125
+ ### Migration — FROM → TO
126
+
127
+ | | before | after |
128
+ | -------------------- | ----------------------------------- | -------------------------- |
129
+ | `allowExport` unset | export **allowed** (inherited read) | export **denied** |
130
+ | `allowExport: false` | export denied | export denied (unchanged) |
131
+ | `allowExport: true` | export allowed | export allowed (unchanged) |
132
+
133
+ **The one-line fix:** add `allowExport: true` to the object entry (or the `'*'`
134
+ wildcard) of every permission set whose holders should keep exporting.
135
+
136
+ ```ts
137
+ objects: {
138
+ deal: { allowRead: true, allowExport: true }, // ← add the grant
139
+ }
140
+ ```
141
+
142
+ Nothing else changes: read, CRUD, RLS, FLS and sharing are untouched, and a set
143
+ that never exported is unaffected.
144
+
145
+ **Who is affected.** Package-shipped sets are re-seeded on upgrade, so the
146
+ built-ins are handled for you — `admin_full_access` and `organization_admin` now
147
+ carry `allowExport: true` explicitly. **Environment-authored sets are not**: any
148
+ custom set whose users export must be edited. `member_default` deliberately does
149
+ NOT carry the grant, so ordinary authenticated users lose export until an admin
150
+ grants it — that is the point of the flip, not an oversight.
151
+
152
+ **Merge semantics.** Most-permissive, exactly like the CRUD bits: any set
153
+ granting `true` grants export. `false` and unset are the same outcome; `false`
154
+ is authoring intent, not a veto, because permission sets are additive capability
155
+ containers (ADR-0090).
156
+
157
+ **Not implied by super-user bits.** `viewAllRecords` / `modifyAllRecords` no
158
+ longer confer export. Separating "may see all data" from "may take a bulk copy"
159
+ is the segregation-of-duties case the axis exists for.
160
+
161
+ ### Also in this change
162
+
163
+ - **spec** — a set carrying `allowExport` is now **high-privilege**
164
+ (`describeHighPrivilegeBits`), so it cannot be bound to the `everyone` /
165
+ `guest` audience anchors. Without this the opt-in was defeatable by binding an
166
+ export-granting set to `everyone`. One predicate, so the runtime anchor gate,
167
+ the `@objectstack/lint` security-posture rule and the install-time suggestion
168
+ surface all pick it up together.
169
+ - **spec / plugin-security** — `ExplainOperationSchema` gains `export`, so
170
+ `explain` can answer _why_ a caller got `403 EXPORT_NOT_PERMITTED`. It
171
+ explains as `read ∧ the export grant`: `object_crud` reports the conjunction
172
+ and attributes the granting set, while every data-shaped layer
173
+ (requiredPermissions, OWD/depth/sharing, RLS, record attribution) is computed
174
+ as the `find` the export actually performs — asking the RLS compiler about an
175
+ `export` operation would match no policy and wrongly report "no RLS applies".
176
+ `readFilter` is surfaced for `export` as it is for `read`.
177
+ - **plugin-reports** — closes the reports side door (#3710). A report rendered
178
+ as `csv`/`json` is the same bulk copy of the same object, so it is gated by
179
+ the same `ISecurityService.canExport`. Enforced in `executeReport`, which the
180
+ interactive run, the ad-hoc run and the scheduled dispatch all funnel through;
181
+ `scheduleReport` additionally refuses at create time so an author is not told
182
+ at 3am. A schedule created while granted stops delivering once the grant is
183
+ revoked. `html_table` stays a read — it is a rendered view, not a bulk copy.
184
+ Deployments without `plugin-security` are unaffected (no permission sets
185
+ exist, so the axis does not apply).
186
+
187
+ <!-- adr-0087: registered export-axis-opt-in -->
188
+
189
+ ### Patch Changes
190
+
191
+ - f40c5b4: refactor(plugin-approvals,plugin-reports): enforcement implementations annotate the full `ExecutionContext` (#7135)
192
+
193
+ The services half of #7070, mirroring what PR #7140 did for
194
+ `plugin-sharing` / `plugin-audit`. #6523 converged 36 contract signatures onto
195
+ the complete `resolveAuthzContext` envelope, applying the #6206 ruling —
196
+ enforcement adjudicates on the whole envelope, never a per-site subset. The
197
+ implementations behind those contracts still annotated their own parameters
198
+ with the six-field shape the contracts used to name, so nothing they could
199
+ _read_ had widened.
200
+
201
+ `ApprovalService`, the approval flow-node provider and `ReportService` now
202
+ declare `ExecutionContext` on all 43 of those positions, and the casts the
203
+ narrow annotation forced are gone:
204
+
205
+ - `isOverrideActor()` read the derived `posture` (ADR-0095) through an
206
+ unchecked `(context as any)`. That gate decides whether a platform or tenant
207
+ admin may release a STUCK approval — one routed to an unstaffed position, the
208
+ only in-product recovery from a permanently locked record — so an erasure sat
209
+ directly on an enforcement input: a mistyped rung would have compiled and
210
+ silently denied every override. It is a declared read now.
211
+ - Both services' `SYSTEM_CTX` is typed as the envelope and passed as itself,
212
+ retiring the `SYSTEM_CTX as unknown as …` double casts at the three sites
213
+ that hand it to a contract method.
214
+ - The `(context as any).userId` / `.tenantId` reads in `ApprovalService` now
215
+ read declared fields.
216
+ - `OwnerContextResolver` returns the envelope, which is what a scheduled report
217
+ actually resolves for its owner (#2849 / #2980).
218
+
219
+ **No runtime behaviour changes.** The values were always complete — this
220
+ family's damage was type-side — so every gate answers exactly what it answered
221
+ before. Method parameters only WIDEN what they accept, so no caller is
222
+ affected, and no public export changes shape.
223
+
224
+ Casts deliberately kept, and now documented where they sit: `organizationId`
225
+ is not a field of the envelope at all — that spelling has its own history
226
+ (#5858 / `check:org-identifier`) and was held out of this change by #7070. In
227
+ `approval-node.ts` the single remaining assertion exists only because the
228
+ literal names that key; it was reduced from `as unknown as …` to a single
229
+ `as ExecutionContext`, which still requires the literal to be comparable to
230
+ the envelope.
231
+
232
+ Because a re-narrowed annotation would compile, ship and pass every test in
233
+ these packages, the convergence is pinned by a new compile-time module per
234
+ package, `exec-context-annotation.pin.ts`: it hands each parameter a fresh
235
+ literal naming envelope-only fields (`posture`, `accessible_org_ids`,
236
+ `org_user_ids`), which TypeScript's excess-property check rejects the moment a
237
+ parameter narrows back, plus negative cases so a parameter erased to `any`
238
+ cannot pass either.
239
+
240
+ The exported `SharingExecutionContext` type itself is NOT removed here: it is
241
+ defined in `packages/spec`, which is single-owner, so its retirement is a
242
+ separate follow-up.
243
+
244
+ - 2e836de: chore(packaging): CHANGELOG.md ships in every npm tarball (#4261)
245
+
246
+ The AGENTS.md post-task checklist requires breaking changesets to carry their
247
+ FROM → TO migration because "this text ships to consumers as `CHANGELOG.md`
248
+ inside the npm package and is what an upgrading agent greps after the tombstone
249
+ error." That delivery path was severed for 68 of the 69 publishable packages:
250
+ npm packs `package.json` / `README*` / `LICENSE*` unconditionally but — unlike
251
+ older npm versions — not `CHANGELOG.md`, and the canonical
252
+ `"files": ["dist", "README.md"]` whitelist never named it. Measured on npm
253
+ 10.9.7: `npm pack --dry-run` on `@objectstack/types` shipped 3 files while its
254
+ 70KB `CHANGELOG.md` stayed behind. Only `@objectstack/spec` listed it
255
+ explicitly.
256
+
257
+ The tombstone-error scenario is precisely the one where the repo is out of
258
+ reach — the upgrading agent has `node_modules` and nothing else — so the
259
+ migration text has to ride in the tarball. Every publishable package now
260
+ declares `CHANGELOG.md` in `files`, and the canonical whitelist is
261
+ `["dist", "README.md", "CHANGELOG.md"]`.
262
+
263
+ The other half is the gate: `check:published-files` gains a fifth invariant,
264
+ COMPLETE — a whitelist that fails to cover `CHANGELOG.md` fails the
265
+ always-required lint job, so the next package cannot silently sever the path
266
+ again. `@objectstack/spec`'s per-package EXTRA_ENTRIES exemption dissolves
267
+ into the canonical set.
268
+
269
+ Consumer-visible change: one more file per install (the package's changelog,
270
+ e.g. 70.8KB for `@objectstack/types`), and `grep -r "removed key"
271
+ node_modules/@objectstack/*/CHANGELOG.md` now finds the migration it was
272
+ promised.
273
+
274
+ - b5f9397: fix(sharing,runtime): a `sort` passed straight to the engine never ordered anything; migrate every in-repo engine call to canonical QueryAST keys (#4346)
275
+
276
+ Two changes with different weights, from one sweep of every in-repo engine
277
+ call site that still speaks a deprecated alias.
278
+
279
+ **The bug — three dropped sorts.** #4346 made the engine fold `filter`→`where`
280
+ and `top`→`limit` on all six methods. The other four pairs in
281
+ `RPC_QUERY_ALIAS_SLOTS` (`select`, `sort`, `skip`, `populate`) are folded at
282
+ the RPC/wire layer only — their values need shape lowering that belongs to
283
+ those layers — and a **direct `engine.find()` never crosses that layer**. Three
284
+ call sites passed `sort` there, so it rode onto the AST untouched, every
285
+ driver's `Array.isArray(query.orderBy)` guard declined to emit an ORDER BY, and
286
+ the query returned an ordinary-looking, arbitrarily-ordered result:
287
+
288
+ | call site | asked for | actually got |
289
+ | ----------------------------------- | ------------------------------------------------- | --------------------------- |
290
+ | `share-link-routes.ts` | shared AI conversation messages, `created_at asc` | messages in arbitrary order |
291
+ | `runtime/domains/share-links.ts` | same route, runtime-domain copy | same |
292
+ | `share-link-service.ts` `listLinks` | the 200 most recent share links | an arbitrary 200 |
293
+
294
+ All three combine the dropped sort with a `limit` — the "latest N" shape whose
295
+ failure #4226 spelled out: an unapplied sort returns rows in arbitrary order,
296
+ which `limit` then slices into an arbitrary page. #4226 fixed that in the wire
297
+ normalizer; these calls sit one layer below it. `listLinks` had no test at all,
298
+ which is why it went unnoticed. Now pinned — on the option bag the engine
299
+ receives, not on row order, because the failure is that the key never becomes
300
+ `orderBy` and a fake engine honouring either spelling would pass either way.
301
+
302
+ **The cleanup — 27 no-op renames.** Every remaining in-repo engine call passing
303
+ `filter` now passes `where` (approvals 5, auth 2, reports 6, sharing 11,
304
+ webhooks 2, plus the one `filters` in a spec doc example). These are strict
305
+ no-ops since #4346 folds the alias — the point is that the framework stops
306
+ depending on a spelling it asks users to migrate off, which is a prerequisite
307
+ for ever retiring the aliases. Service-level `filter` PARAMETERS (each
308
+ service's own public API, e.g. `listRequests(filter)`) are deliberately
309
+ untouched — those are not engine option bags.
310
+
311
+ Two of the renamed calls were live victims of the #4346 bug rather than
312
+ cosmetic: `auth-manager`'s `stampIdentitySource` read the table's first row via
313
+ `findOne({filter})` and counted the whole table via `count({filter})`, so a
314
+ federated sign-in never stamped `source: 'idp_provisioned'`. #4346 already
315
+ corrected the behaviour; this makes the call say what it means.
316
+
317
+ - d0d5205: refactor(core,plugin-audit,service-storage,plugin-reports): give the `__` operation-private-key convention a single owner (#7284)
318
+
319
+ `withoutOperationPrivateKeys` — the rule that a consumer forwarding a caller's
320
+ execution envelope to a question about a DIFFERENT object must first drop the
321
+ `__`-prefixed keys plugin-security stamped for the operation in flight — had been
322
+ hand-copied into three packages: `plugin-audit`'s comment access hooks (#7141),
323
+ `service-storage`'s attachment access hooks (#7145) and `plugin-reports`' report
324
+ service (#7204). Each carried its own `OPERATION_PRIVATE_KEY_PREFIX` and its own
325
+ doc block, and the prose had already diverged while the code still agreed — the
326
+ shape that makes a later divergence in behaviour hard to notice.
327
+
328
+ The helper now lives once, in `@objectstack/core`
329
+ (`security/operation-private-keys.ts`), exported from the package root. Core is
330
+ the only candidate all three consumers already depend on: `plugin-security` is
331
+ the producer of the convention and the most honest owner, but none of the three
332
+ depends on it and a string-prefix filter does not justify three new dependency
333
+ edges onto a plugin; `@objectstack/spec` is fenced off by Prime Directive #2. The
334
+ new home sits beside `assemble-execution-context.ts`, which owns the other end of
335
+ the same lifecycle — that file is where an `ExecutionContext` is built at a
336
+ transport entry point, this one is where it is stripped back down before being
337
+ forwarded.
338
+
339
+ The full reasoning moved with the code rather than being thinned: which keys the
340
+ middleware stamps and why each is a widening input, why they are dropped by
341
+ PREFIX and never by a name list, and why the fresh copy is load-bearing in both
342
+ directions. Each consumer keeps only its own local half — which object _its_
343
+ gates actually ask about — and points at the shared home.
344
+
345
+ No behaviour change: the three copies were byte-equivalent, and all three
346
+ packages' suites pass unchanged. Two new pins at the home cover it — the rule's
347
+ own behaviour, which no package-level test had ever asserted directly, and a
348
+ repository-shape pin that turns red if a fourth file declares its own copy.
349
+
350
+ - cc2de0e: chore(packaging): 20 packages stop publishing their sources, tests and build tooling (#4248)
351
+
352
+ These 20 packages declared no `files` field, so npm fell back to packing the
353
+ whole package directory. `npm pack --dry-run` on `@objectstack/plugin-webhooks`
354
+ listed **21 files** — 15 under `src/`, three of them unit tests
355
+ (`auto-enqueuer.test.ts`, `bootstrap-declared-webhooks.test.ts`, …), plus the
356
+ build-time `scripts/i18n-extract.config.ts`. `dist/` lands on top of that at
357
+ publish time rather than instead of it, so consumers were installing the
358
+ TypeScript sources and the test suite alongside the artifact they asked for.
359
+
360
+ Each now declares `"files": ["dist", "README.md"]`, matching the 29 packages
361
+ that already did. Nothing a consumer imports moves: every `main` / `types` /
362
+ `exports` target in all 20 already resolved inside `dist/`, which the new
363
+ `check:published-files` guard verifies rather than assumes. The visible change
364
+ is a smaller install and a smaller dependency-scanning surface — `npm pack` on
365
+ `@objectstack/plugin-webhooks` now yields 2 files plus `dist/`.
366
+
367
+ The other half of the fix is the gate. Half the packages declaring `files` and
368
+ half not was the #3786 shape — a hand-copied convention with nothing enforcing
369
+ it, where whoever forgets the line gets no signal at all. `check:published-files`
370
+ (new, wired into the always-required `lint` job) holds every non-private
371
+ workspace package to four invariants: `files` is **declared**; it is
372
+ **sufficient** (covers every entry point, so tightening a whitelist cannot ship
373
+ a package that fails to resolve); it is **minimal** (admits no test, test-harness
374
+ config or build script); and anything beyond `dist` + `README.md` is
375
+ **registered** with a reason, reconciled in both directions so a stale exemption
376
+ is an error rather than dead text. `@objectstack/spec` is the one package with
377
+ registered extras — its `.zod.ts` sources, JSON Schemas, liveness ledgers and
378
+ `CHANGELOG.md` are product, not build input.
379
+
380
+ This also closes an assumption #4206 was resting on. Excluding `<pkg>/scripts/**`
381
+ from the docs-drift implementation test is sound only while no package publishes
382
+ `scripts/` as runtime code; that held, but it held because someone read all three
383
+ offenders by hand. It is now checked on every PR.
384
+
385
+ - cb466aa: Reports read with the caller's whole execution envelope, so a `group`-posture report no longer under-reports
386
+
387
+ `executeReport` rebuilt a five-field projection of the caller's `ExecutionContext`
388
+ (`userId` / `tenantId` / `positions` / `permissions` / `isSystem`) before handing it to
389
+ the engine read that produces the report — while the method's own comment promised
390
+ "reports execute with the caller's identity".
391
+
392
+ **Before.** `accessible_org_ids` was not in that projection, and the engine reads it by
393
+ name (`buildDriverOptions`, ADR-0105 D2 / #3623) to widen the driver's native tenant
394
+ scope to the caller's whole membership set under the `group` tenancy posture. Absent, the
395
+ drivers fall back to active-org equality — "fail toward isolation". So the identical query
396
+ returned the membership union in an interactive list view and collapsed to the active org
397
+ inside a **saved or scheduled** report: silently short rows, no error, nothing in the
398
+ output saying so. Measured end-to-end on a real kernel + SQL driver: three rows across two
399
+ member orgs came back as three interactively and two in the report, and a scheduled CSV
400
+ digest emailed the owner the same two. `timezone` went the same way, so a read-time
401
+ formula field resolved its calendar day in UTC instead of the caller's business timezone;
402
+ `posture`, `org_user_ids`, `systemPermissions` and `onBehalfOf` were dropped too.
403
+
404
+ **After.** The read receives the caller's envelope whole (the #6206 ruling — enforcement
405
+ adjudicates on the whole `resolveAuthzContext` envelope, never a per-site subset), minus
406
+ the `__`-prefixed keys plugin-security stamps for the operation in flight, and as a fresh
407
+ object so a callee's stamp cannot write back into the caller's request context. The same
408
+ shape `plugin-audit` (#7141) and `service-storage` (#7145) landed. Direction is unchanged
409
+ outside `group`: the `isolated` posture, a deployment with no posture provider, and a
410
+ `group` caller with an empty accessible set all still read at active-org equality.
411
+
412
+ - 2c2a212: fix(reports): owner-gate the saved-report schedule routes (#2980)
413
+
414
+ The report read/run/delete routes are owner-isolated (a caller may only touch a
415
+ report they own, denied as `REPORT_NOT_FOUND` to avoid leaking that the id
416
+ exists), but the two schedule routes bypassed that gate: `unscheduleReport` and
417
+ `listSchedules` took the caller `context` as `_context` and never consulted it,
418
+ querying under the system context (RLS-bypassing). Any authenticated caller
419
+ could therefore delete another owner's report schedule — a cross-owner
420
+ destructive write — or list another owner's schedules (leaking recipient
421
+ addresses and cron), by supplying an id.
422
+
423
+ Both now resolve the schedule's parent report and require the caller to own it,
424
+ mirroring the sibling routes:
425
+
426
+ - **`unscheduleReport`** loads the schedule, then its report, and deletes only
427
+ when `canAccessReport` holds; a cross-owner attempt throws `REPORT_NOT_FOUND`
428
+ (mapped to `404` by the REST layer, deny-as-404 anti-enumeration), while a
429
+ genuinely-absent schedule stays idempotent. `scheduleReport` (create) was
430
+ already gated via `getReport`, so only the delete/list doors were open.
431
+ - **`listSchedules`** returns an empty list to any non-system caller who cannot
432
+ access the report it is scoped to — the same non-leaking posture as
433
+ `listReports`. The scheduler's system context still sees every schedule.
434
+
435
+ No authoring-surface or metadata change; existing owner-path behavior is
436
+ unchanged.
437
+
438
+ - dadd1ad: refactor(spec,plugin-sharing): retire the exported `SharingExecutionContext` type (#7218)
439
+
440
+ <!-- adr-0087: registered sharing-execution-context-retired -->
441
+
442
+ **BREAKING — public surface removal.** `SharingExecutionContext` is deleted from
443
+ `@objectstack/spec` (`contracts/sharing-service`) and from
444
+ `@objectstack/plugin-sharing`, which re-exported it. Both `api-surface/` and
445
+ `export-origins/` snapshots are regenerated accordingly.
446
+
447
+ This is the deferred deletion recorded when #7070 split the convergence in two.
448
+ #6523 / PR #7068 converged 36 contract signatures onto the full
449
+ `resolveAuthzContext` envelope (`ExecutionContext`), applying the #6206 ruling —
450
+ enforcement adjudicates on the whole envelope, never a per-site subset. The
451
+ consumer halves then re-annotated the implementations: PR #7140 (identity:
452
+ `plugin-sharing`, `plugin-audit`) and PR #7206 (services: `plugin-approvals`,
453
+ `plugin-reports`). Both landed with the type still exported, because it is
454
+ DEFINED in `packages/spec` and that package's retirement is the spec seat's to
455
+ make. Nothing declares it any more, so it goes.
456
+
457
+ **Migration.** Anyone who imported `SharingExecutionContext` from either package
458
+ should import `ExecutionContext` from `@objectstack/spec` instead — the type the
459
+ contracts have declared since #7068. The old shape was six optional fields, all
460
+ of which exist on the envelope with the same names and types, so a value that
461
+ satisfied the retired type already satisfies `ExecutionContext`; only the
462
+ spelling of the annotation changes.
463
+
464
+ **No runtime behaviour changes.** The type was erased at compile time and no
465
+ signature's accepted shape moved: the contracts already took the wide envelope.
466
+
467
+ **What the retirement did NOT remove — the reason to read the pins.** Deleting
468
+ the type does not make re-narrowing a compile error. Structural subtyping still
469
+ accepts a six-field context where the envelope is expected, so the boundary is
470
+ held by the declared parameter type plus the pins, exactly as before. The three
471
+ `exec-context-annotation.pin.ts` files (`plugin-sharing`, `plugin-approvals`,
472
+ `plugin-reports`) told their failure story as "the parameter narrows back to
473
+ `SharingExecutionContext`", which a deletion would have quietly hollowed out.
474
+ Each now keeps the retired six-field shape as a local, non-exported SPECIMEN
475
+ type and refutes every enforcement parameter against it by type identity, so a
476
+ re-narrowing under ANY name is red — alongside the fresh-literal
477
+ excess-property checks they already carried. `sharing-service.test.ts` in
478
+ `packages/spec` is re-anchored the same way, and its "twin unchanged in shape"
479
+ case becomes a "twin stays retired" case. The narrative the retired type's doc
480
+ block carried (the measured `(context as any).posture` specimen, and why tsc
481
+ cannot police this) moves to the module doc of `contracts/sharing-service`,
482
+ which the contracts and pins now point at.
483
+
484
+ - ea936f3: fix(plugin-reports): `DELETE /api/v1/reports/schedules/:scheduleId` stops telling a caller whether a schedule id exists
485
+
486
+ `DELETE /api/v1/reports/schedules/:scheduleId` answered differently depending on
487
+ whether the target id **existed**, which let any authenticated caller enumerate
488
+ other owners' report schedules by probing ids and reading the status code:
489
+
490
+ | Target | Before | After |
491
+ | ----------------------------------- | ---------------------- | ---------------------------------- |
492
+ | Another owner's schedule id | `404 REPORT_NOT_FOUND` | `404 REPORT_NOT_FOUND` (unchanged) |
493
+ | A schedule id that does not exist | `204 No Content` | `404 REPORT_NOT_FOUND` |
494
+ | A schedule whose report row is gone | `404 REPORT_NOT_FOUND` | `404 REPORT_NOT_FOUND` (unchanged) |
495
+ | Your own schedule | `204 No Content` | `204 No Content` (unchanged) |
496
+
497
+ This is the same defect #7523 closed on the sibling `DELETE /reports/:id`, in the
498
+ costume that card explicitly warned about: there the split was 500-vs-204 and
499
+ loud, here it was 404-vs-204 and read as correct. The route was in fact cited by
500
+ #7523's investigation as the example of the _right_ shape, because it does route
501
+ its catch through `handleValidation` — which is why the cross-owner arm is a
502
+ clean 404 rather than a 500. Only the cross-owner arm was ever probed (QA run
503
+ #7515); the unknown-id arm was not, so the surviving half went unseen and
504
+ `packages/rest/src/rest.test.ts` pinned its `204` green.
505
+
506
+ `ReportService.unscheduleReport()` carried the intent — _"others get a not-found
507
+ so the delete neither fires nor reveals the schedule's existence"_ — and a hole
508
+ one line wide above it: `if (!schedule) return; // idempotent`. Idempotence is
509
+ only harmless where every caller may see the row; with a cross-owner arm that
510
+ throws, resolving quietly _is_ the tell.
511
+
512
+ Both deny arms are now one decision, taken before the delete fires, by the
513
+ predicate already blind to the difference between them: `canAccessReport` is
514
+ false for a schedule that does not exist, for one whose report is gone, and for
515
+ one owned by somebody else alike. A single throw site means a single message, so
516
+ the route's single `handleValidation` call emits a single response — status and
517
+ body cannot drift apart.
518
+
519
+ Unlike `deleteReport`, this could not be pre-empted in the route. That one
520
+ collapses its arms with `getReport()`, which is already blind to the same
521
+ difference (#2980); the caller here presents a `scheduleId`, and `IReportService`
522
+ exposes no by-id schedule read to be blind with (`listSchedules` is keyed by
523
+ `reportId`). The blinding therefore lives in the service, and
524
+ `IReportService.unscheduleReport` now states it as a contract obligation rather
525
+ than leaving each implementation to rediscover it.
526
+
527
+ Deleting a schedule you own still answers `204`. Deleting one you cannot see is
528
+ now `404` instead of a silent `204` — the cost of closing the oracle, and in line
529
+ with the cross-owner GET / run / upsert-overwrite / delete arms, which all
530
+ already answer 404. A system/dispatcher context deleting an id with no row now
531
+ gets `REPORT_NOT_FOUND` too, where it previously resolved; no caller in the repo
532
+ relies on that (the route is the only production caller).
533
+
534
+ Tests assert the two deny arms' responses are **EQUAL** rather than pinning each
535
+ arm's status separately, so the plausible half-fix cannot pass through them — a
536
+ mutation that answers both arms 404 with different bodies leaves every per-arm
537
+ status assertion green and turns the equality assertions red.
538
+
539
+ - 2465133: fix(plugins): sweep the service-lookup erasures out of the plugin composition roots, and fix the two alias-only HTTP reads it exposed (#4251 B5)
540
+
541
+ Batch B5 of the #4251 sweep: the seven remaining `packages/plugins/*` composition
542
+ roots. 35 lookup sites that had been erased to `any` now carry the slot's
543
+ contract, so the compiler checks what each plugin actually calls on the service
544
+ it resolved. The ratchet drops 143 sites / 32 files to 108 / 25.
545
+
546
+ **Two real defects, both of the shape this sweep exists to find.** Approvals'
547
+ actionable-link pages (ADR-0043) and sharing's public share-link REST routes each
548
+ read the HTTP server under `http-server` _only_ — the deprecated alias. The
549
+ ledger records `http.server` as canonical and as the only name present on every
550
+ provider path: `runtime.ts`'s `config.server` path registers no alias at all. On
551
+ that path both lookups threw, the surrounding `catch` swallowed it, and the
552
+ routes silently never mounted — approval e-mail action links 404'd and the
553
+ share-link surface was absent, with nothing in the log to say so. Both reads are
554
+ now canonical-first with the alias as fallback, each name in its own `try`
555
+ because `getService` throws on an empty slot (so `a() ?? b()` inside one `try`
556
+ never reaches `b` — the same correction #4393 made in metadata and
557
+ cloud-connection).
558
+
559
+ Typing choices follow the batch method: pure data-plane consumers take the
560
+ narrow contract (`IDataEngine` in reports), consumers that bind hook or
561
+ middleware seams take the engine seen whole (`IObjectQLEngine` in approvals,
562
+ sharing and pinyin-search), and slots with no contract get a **named** local
563
+ surface rather than `any` — plugin-email's `MailSettingsSurface`, and the
564
+ surfaces the consuming packages already declared (`ApprovalMessagingSurface`,
565
+ `SharingSecurityProbe`, `ReportEmail`). A named surface that omits a member
566
+ still makes the compiler name every call site; `any` says nothing.
567
+
568
+ No behaviour change beyond the two alias reads. No contract changes.
569
+
570
+ - Updated dependencies [50616d9]
571
+ - Updated dependencies [430dcc2]
572
+ - Updated dependencies [690ccf2]
573
+ - Updated dependencies [6a67d7a]
574
+ - Updated dependencies [098f4bb]
575
+ - Updated dependencies [333a374]
576
+ - Updated dependencies [9fe9c1d]
577
+ - Updated dependencies [3d5c090]
578
+ - Updated dependencies [e5bd768]
579
+ - Updated dependencies [08b5a3d]
580
+ - Updated dependencies [e027b3e]
581
+ - Updated dependencies [e6ac4bd]
582
+ - Updated dependencies [c2429b0]
583
+ - Updated dependencies [445a0c2]
584
+ - Updated dependencies [d99aeb3]
585
+ - Updated dependencies [f6609e6]
586
+ - Updated dependencies [4727eb8]
587
+ - Updated dependencies [a70358a]
588
+ - Updated dependencies [0ecc656]
589
+ - Updated dependencies [06772eb]
590
+ - Updated dependencies [d4e0809]
591
+ - Updated dependencies [80334c7]
592
+ - Updated dependencies [f63cd09]
593
+ - Updated dependencies [97e7e3c]
594
+ - Updated dependencies [ce5242c]
595
+ - Updated dependencies [a7163ea]
596
+ - Updated dependencies [e6e9379]
597
+ - Updated dependencies [5823d59]
598
+ - Updated dependencies [3140f9c]
599
+ - Updated dependencies [9500ba4]
600
+ - Updated dependencies [fa3d0cf]
601
+ - Updated dependencies [af5a224]
602
+ - Updated dependencies [71f76e1]
603
+ - Updated dependencies [37b1346]
604
+ - Updated dependencies [99736a0]
605
+ - Updated dependencies [fe67e34]
606
+ - Updated dependencies [fdb4f50]
607
+ - Updated dependencies [270650f]
608
+ - Updated dependencies [3aef718]
609
+ - Updated dependencies [1bd5652]
610
+ - Updated dependencies [14252d3]
611
+ - Updated dependencies [7fb436c]
612
+ - Updated dependencies [879ea13]
613
+ - Updated dependencies [8828b9e]
614
+ - Updated dependencies [1ea6bce]
615
+ - Updated dependencies [c1dcacd]
616
+ - Updated dependencies [ad303ed]
617
+ - Updated dependencies [32ccb23]
618
+ - Updated dependencies [f5a4ef0]
619
+ - Updated dependencies [2d3e255]
620
+ - Updated dependencies [a8940e4]
621
+ - Updated dependencies [7d7521f]
622
+ - Updated dependencies [5dc4d02]
623
+ - Updated dependencies [f724f69]
624
+ - Updated dependencies [98877c9]
625
+ - Updated dependencies [98877c9]
626
+ - Updated dependencies [53068c1]
627
+ - Updated dependencies [ee58392]
628
+ - Updated dependencies [f16e54e]
629
+ - Updated dependencies [c44dd5e]
630
+ - Updated dependencies [06be54e]
631
+ - Updated dependencies [28ad90e]
632
+ - Updated dependencies [76d74ec]
633
+ - Updated dependencies [201b31f]
634
+ - Updated dependencies [e6b1b69]
635
+ - Updated dependencies [259459d]
636
+ - Updated dependencies [3f7f14e]
637
+ - Updated dependencies [e2616e0]
638
+ - Updated dependencies [6fdc5c6]
639
+ - Updated dependencies [8b9d71e]
640
+ - Updated dependencies [05154a1]
641
+ - Updated dependencies [33f5e23]
642
+ - Updated dependencies [259af21]
643
+ - Updated dependencies [f8644c7]
644
+ - Updated dependencies [306ca50]
645
+ - Updated dependencies [978fed2]
646
+ - Updated dependencies [cfc293f]
647
+ - Updated dependencies [587fc91]
648
+ - Updated dependencies [de70b42]
649
+ - Updated dependencies [9b6fe7c]
650
+ - Updated dependencies [fb3d99b]
651
+ - Updated dependencies [1986594]
652
+ - Updated dependencies [6968885]
653
+ - Updated dependencies [eaed61f]
654
+ - Updated dependencies [52200b4]
655
+ - Updated dependencies [cdfbee2]
656
+ - Updated dependencies [ad4af62]
657
+ - Updated dependencies [debe2f6]
658
+ - Updated dependencies [d44dbfa]
659
+ - Updated dependencies [29c6c9d]
660
+ - Updated dependencies [d21c001]
661
+ - Updated dependencies [ad047d2]
662
+ - Updated dependencies [8c711fb]
663
+ - Updated dependencies [f1cc3a3]
664
+ - Updated dependencies [09e4547]
665
+ - Updated dependencies [97b0798]
666
+ - Updated dependencies [474fe39]
667
+ - Updated dependencies [0bc685a]
668
+ - Updated dependencies [b949059]
669
+ - Updated dependencies [2826d1e]
670
+ - Updated dependencies [be1c52c]
671
+ - Updated dependencies [c5ff96d]
672
+ - Updated dependencies [5a84d41]
673
+ - Updated dependencies [84e7be9]
674
+ - Updated dependencies [91f4c78]
675
+ - Updated dependencies [ddc2527]
676
+ - Updated dependencies [820eff9]
677
+ - Updated dependencies [a6c3f38]
678
+ - Updated dependencies [5fa04fb]
679
+ - Updated dependencies [debc23a]
680
+ - Updated dependencies [0f8ad09]
681
+ - Updated dependencies [553a47f]
682
+ - Updated dependencies [43a7a8d]
683
+ - Updated dependencies [a98085f]
684
+ - Updated dependencies [20b1a9e]
685
+ - Updated dependencies [344a22a]
686
+ - Updated dependencies [4827e91]
687
+ - Updated dependencies [8d895ff]
688
+ - Updated dependencies [86f7a20]
689
+ - Updated dependencies [a3a884d]
690
+ - Updated dependencies [cfed092]
691
+ - Updated dependencies [203a449]
692
+ - Updated dependencies [8f9689f]
693
+ - Updated dependencies [73f69dc]
694
+ - Updated dependencies [04c56aa]
695
+ - Updated dependencies [f6472d7]
696
+ - Updated dependencies [57a3bb3]
697
+ - Updated dependencies [b3efeb7]
698
+ - Updated dependencies [ddd075a]
699
+ - Updated dependencies [88154be]
700
+ - Updated dependencies [e8dc61e]
701
+ - Updated dependencies [9c82146]
702
+ - Updated dependencies [5f9a987]
703
+ - Updated dependencies [744b8f5]
704
+ - Updated dependencies [ac37fc6]
705
+ - Updated dependencies [9f060e5]
706
+ - Updated dependencies [bc17d39]
707
+ - Updated dependencies [2f3e793]
708
+ - Updated dependencies [4820f55]
709
+ - Updated dependencies [462d9c4]
710
+ - Updated dependencies [78caf51]
711
+ - Updated dependencies [7d21581]
712
+ - Updated dependencies [37785ed]
713
+ - Updated dependencies [62a789b]
714
+ - Updated dependencies [2e284b2]
715
+ - Updated dependencies [d8e8d9c]
716
+ - Updated dependencies [789ad63]
717
+ - Updated dependencies [f2445c9]
718
+ - Updated dependencies [94e749b]
719
+ - Updated dependencies [ea1d916]
720
+ - Updated dependencies [2af1988]
721
+ - Updated dependencies [0af50a3]
722
+ - Updated dependencies [1b49eaf]
723
+ - Updated dependencies [ae31a19]
724
+ - Updated dependencies [2e836de]
725
+ - Updated dependencies [e0f300b]
726
+ - Updated dependencies [0161c7f]
727
+ - Updated dependencies [e900015]
728
+ - Updated dependencies [db02d47]
729
+ - Updated dependencies [b5bdf48]
730
+ - Updated dependencies [23338c3]
731
+ - Updated dependencies [12a19a8]
732
+ - Updated dependencies [5b843fb]
733
+ - Updated dependencies [62b6a2f]
734
+ - Updated dependencies [7e5af5c]
735
+ - Updated dependencies [5b4780b]
736
+ - Updated dependencies [a933452]
737
+ - Updated dependencies [9d1d9c7]
738
+ - Updated dependencies [8140915]
739
+ - Updated dependencies [a019e52]
740
+ - Updated dependencies [e8f8f6c]
741
+ - Updated dependencies [41dcda3]
742
+ - Updated dependencies [7b48cf9]
743
+ - Updated dependencies [b5404f4]
744
+ - Updated dependencies [64fc6d5]
745
+ - Updated dependencies [b746aa0]
746
+ - Updated dependencies [b4487aa]
747
+ - Updated dependencies [1007379]
748
+ - Updated dependencies [65ca83a]
749
+ - Updated dependencies [0bfdf46]
750
+ - Updated dependencies [947d4f9]
751
+ - Updated dependencies [f764691]
752
+ - Updated dependencies [e120a5a]
753
+ - Updated dependencies [e5bd2f6]
754
+ - Updated dependencies [e650d67]
755
+ - Updated dependencies [04476e7]
756
+ - Updated dependencies [67bf2e2]
757
+ - Updated dependencies [eaaf03c]
758
+ - Updated dependencies [d17df80]
759
+ - Updated dependencies [7d0e7b5]
760
+ - Updated dependencies [c6d1cb4]
761
+ - Updated dependencies [6513c17]
762
+ - Updated dependencies [36030ff]
763
+ - Updated dependencies [79228cd]
764
+ - Updated dependencies [6117f7b]
765
+ - Updated dependencies [e533b0b]
766
+ - Updated dependencies [cdf4d9a]
767
+ - Updated dependencies [aee1806]
768
+ - Updated dependencies [c13350b]
769
+ - Updated dependencies [c13350b]
770
+ - Updated dependencies [2c1988c]
771
+ - Updated dependencies [9ca2d85]
772
+ - Updated dependencies [c13350b]
773
+ - Updated dependencies [891d345]
774
+ - Updated dependencies [c8124e5]
775
+ - Updated dependencies [a52e2ef]
776
+ - Updated dependencies [5293114]
777
+ - Updated dependencies [376a061]
778
+ - Updated dependencies [c142ced]
779
+ - Updated dependencies [211abdb]
780
+ - Updated dependencies [b3363e9]
781
+ - Updated dependencies [eda599e]
782
+ - Updated dependencies [a1a4140]
783
+ - Updated dependencies [7c7e246]
784
+ - Updated dependencies [2ef1807]
785
+ - Updated dependencies [f35cdc5]
786
+ - Updated dependencies [d03fe25]
787
+ - Updated dependencies [217e2e6]
788
+ - Updated dependencies [2672f85]
789
+ - Updated dependencies [20bc357]
790
+ - Updated dependencies [11066f6]
791
+ - Updated dependencies [916af17]
792
+ - Updated dependencies [84c86fb]
793
+ - Updated dependencies [2a2a9fb]
794
+ - Updated dependencies [86a71d1]
795
+ - Updated dependencies [c001422]
796
+ - Updated dependencies [77022a9]
797
+ - Updated dependencies [d5c75e2]
798
+ - Updated dependencies [03d26f7]
799
+ - Updated dependencies [5966c2a]
800
+ - Updated dependencies [2382580]
801
+ - Updated dependencies [9ea2bc5]
802
+ - Updated dependencies [a2e157c]
803
+ - Updated dependencies [95c4227]
804
+ - Updated dependencies [2a61116]
805
+ - Updated dependencies [52760bf]
806
+ - Updated dependencies [5543020]
807
+ - Updated dependencies [880d343]
808
+ - Updated dependencies [6e82972]
809
+ - Updated dependencies [d4df105]
810
+ - Updated dependencies [4615a18]
811
+ - Updated dependencies [f505689]
812
+ - Updated dependencies [d9fa683]
813
+ - Updated dependencies [606d577]
814
+ - Updated dependencies [4384921]
815
+ - Updated dependencies [e2798fa]
816
+ - Updated dependencies [3c628ce]
817
+ - Updated dependencies [c2d9098]
818
+ - Updated dependencies [0fd8556]
819
+ - Updated dependencies [3c7bcc0]
820
+ - Updated dependencies [4b6cac7]
821
+ - Updated dependencies [7631964]
822
+ - Updated dependencies [ac471a0]
823
+ - Updated dependencies [60ae58e]
824
+ - Updated dependencies [7f62706]
825
+ - Updated dependencies [667fa44]
826
+ - Updated dependencies [37e38d1]
827
+ - Updated dependencies [e906126]
828
+ - Updated dependencies [ce92674]
829
+ - Updated dependencies [08363a0]
830
+ - Updated dependencies [444de5b]
831
+ - Updated dependencies [a227ed7]
832
+ - Updated dependencies [7cb922e]
833
+ - Updated dependencies [1d22114]
834
+ - Updated dependencies [1eb13a0]
835
+ - Updated dependencies [c52e608]
836
+ - Updated dependencies [9613396]
837
+ - Updated dependencies [3f7b4ff]
838
+ - Updated dependencies [74155c7]
839
+ - Updated dependencies [b5f9397]
840
+ - Updated dependencies [ed77493]
841
+ - Updated dependencies [6908830]
842
+ - Updated dependencies [8b06bba]
843
+ - Updated dependencies [58a03d2]
844
+ - Updated dependencies [2bacd1a]
845
+ - Updated dependencies [e47b342]
846
+ - Updated dependencies [4c54037]
847
+ - Updated dependencies [dc530b4]
848
+ - Updated dependencies [9f601e8]
849
+ - Updated dependencies [6a9dec6]
850
+ - Updated dependencies [0f7157b]
851
+ - Updated dependencies [4dc1c7d]
852
+ - Updated dependencies [d9bef45]
853
+ - Updated dependencies [4dfd002]
854
+ - Updated dependencies [f549a0d]
855
+ - Updated dependencies [51c5227]
856
+ - Updated dependencies [82da264]
857
+ - Updated dependencies [f586f1a]
858
+ - Updated dependencies [77be690]
859
+ - Updated dependencies [4ed7ed4]
860
+ - Updated dependencies [9b9b70f]
861
+ - Updated dependencies [f5a9bc2]
862
+ - Updated dependencies [e59786e]
863
+ - Updated dependencies [2fa4ca1]
864
+ - Updated dependencies [bcf1112]
865
+ - Updated dependencies [baeb4f0]
866
+ - Updated dependencies [29488cc]
867
+ - Updated dependencies [881a3cc]
868
+ - Updated dependencies [f5a2320]
869
+ - Updated dependencies [ad6317b]
870
+ - Updated dependencies [811c30c]
871
+ - Updated dependencies [a4a85c8]
872
+ - Updated dependencies [859cb83]
873
+ - Updated dependencies [07a4e26]
874
+ - Updated dependencies [9774b78]
875
+ - Updated dependencies [8a88885]
876
+ - Updated dependencies [deb538f]
877
+ - Updated dependencies [b49ccfd]
878
+ - Updated dependencies [5b89711]
879
+ - Updated dependencies [85d95e7]
880
+ - Updated dependencies [08cd163]
881
+ - Updated dependencies [0c8a22f]
882
+ - Updated dependencies [5f7669e]
883
+ - Updated dependencies [becbe53]
884
+ - Updated dependencies [b127c8b]
885
+ - Updated dependencies [763931e]
886
+ - Updated dependencies [ec975f1]
887
+ - Updated dependencies [168f60f]
888
+ - Updated dependencies [b07d829]
889
+ - Updated dependencies [de9af8a]
890
+ - Updated dependencies [eb4204b]
891
+ - Updated dependencies [a80302a]
892
+ - Updated dependencies [a648e96]
893
+ - Updated dependencies [a47ac06]
894
+ - Updated dependencies [e4c61a7]
895
+ - Updated dependencies [cc60165]
896
+ - Updated dependencies [474f131]
897
+ - Updated dependencies [081aa6f]
898
+ - Updated dependencies [91f4c78]
899
+ - Updated dependencies [050cd82]
900
+ - Updated dependencies [4d552af]
901
+ - Updated dependencies [44d677c]
902
+ - Updated dependencies [c32944d]
903
+ - Updated dependencies [1dd780f]
904
+ - Updated dependencies [e8d0c21]
905
+ - Updated dependencies [244ca86]
906
+ - Updated dependencies [546ab3c]
907
+ - Updated dependencies [c4df271]
908
+ - Updated dependencies [c8d6f6e]
909
+ - Updated dependencies [0b51bb6]
910
+ - Updated dependencies [d9971d3]
911
+ - Updated dependencies [7dc1067]
912
+ - Updated dependencies [4f13be2]
913
+ - Updated dependencies [a41ba5c]
914
+ - Updated dependencies [189854c]
915
+ - Updated dependencies [0e3a226]
916
+ - Updated dependencies [92a67f2]
917
+ - Updated dependencies [9136327]
918
+ - Updated dependencies [bf0ae99]
919
+ - Updated dependencies [eb3e650]
920
+ - Updated dependencies [abeb375]
921
+ - Updated dependencies [cb3b6cd]
922
+ - Updated dependencies [73b7234]
923
+ - Updated dependencies [d2b97c3]
924
+ - Updated dependencies [61cc079]
925
+ - Updated dependencies [45dc446]
926
+ - Updated dependencies [0e96e46]
927
+ - Updated dependencies [c1d44f7]
928
+ - Updated dependencies [59b794f]
929
+ - Updated dependencies [ef4efa8]
930
+ - Updated dependencies [cbb6a5c]
931
+ - Updated dependencies [fc3a36a]
932
+ - Updated dependencies [ab9fb5c]
933
+ - Updated dependencies [69787f0]
934
+ - Updated dependencies [5d022a1]
935
+ - Updated dependencies [042b9ee]
936
+ - Updated dependencies [f985b3f]
937
+ - Updated dependencies [795b6e1]
938
+ - Updated dependencies [d52d4fe]
939
+ - Updated dependencies [742cebb]
940
+ - Updated dependencies [175d789]
941
+ - Updated dependencies [f549a0d]
942
+ - Updated dependencies [524151c]
943
+ - Updated dependencies [427344c]
944
+ - Updated dependencies [8af76ae]
945
+ - Updated dependencies [1d4756e]
946
+ - Updated dependencies [720c5ad]
947
+ - Updated dependencies [a8d1e24]
948
+ - Updated dependencies [b85cc54]
949
+ - Updated dependencies [a36db28]
950
+ - Updated dependencies [7a8476f]
951
+ - Updated dependencies [518ca7a]
952
+ - Updated dependencies [d1cabaa]
953
+ - Updated dependencies [41642b0]
954
+ - Updated dependencies [4cca74c]
955
+ - Updated dependencies [88ef03e]
956
+ - Updated dependencies [9a4932a]
957
+ - Updated dependencies [3f8817a]
958
+ - Updated dependencies [a2443e3]
959
+ - Updated dependencies [e1554b1]
960
+ - Updated dependencies [9e2caf3]
961
+ - Updated dependencies [4856789]
962
+ - Updated dependencies [81ce41a]
963
+ - Updated dependencies [85e1e4e]
964
+ - Updated dependencies [c3f4916]
965
+ - Updated dependencies [55dbbba]
966
+ - Updated dependencies [33e0385]
967
+ - Updated dependencies [dac6a08]
968
+ - Updated dependencies [72c3c86]
969
+ - Updated dependencies [2d8dba3]
970
+ - Updated dependencies [7f1a635]
971
+ - Updated dependencies [2205363]
972
+ - Updated dependencies [09fe58d]
973
+ - Updated dependencies [f9fc874]
974
+ - Updated dependencies [d62f8eb]
975
+ - Updated dependencies [d0a5ceb]
976
+ - Updated dependencies [a7586cd]
977
+ - Updated dependencies [4c5e80e]
978
+ - Updated dependencies [4b5702a]
979
+ - Updated dependencies [011b386]
980
+ - Updated dependencies [e18a162]
981
+ - Updated dependencies [e98fb14]
982
+ - Updated dependencies [394b7a1]
983
+ - Updated dependencies [ce92674]
984
+ - Updated dependencies [0f2fdcd]
985
+ - Updated dependencies [d6d1a50]
986
+ - Updated dependencies [cf2c9b7]
987
+ - Updated dependencies [8ffa8b9]
988
+ - Updated dependencies [d127ff0]
989
+ - Updated dependencies [674ac99]
990
+ - Updated dependencies [833b512]
991
+ - Updated dependencies [1b9a53b]
992
+ - Updated dependencies [36d90fc]
993
+ - Updated dependencies [7777e8f]
994
+ - Updated dependencies [9b86cf6]
995
+ - Updated dependencies [d063a96]
996
+ - Updated dependencies [8825a06]
997
+ - Updated dependencies [5087ac6]
998
+ - Updated dependencies [677b591]
999
+ - Updated dependencies [cf7c694]
1000
+ - Updated dependencies [ddd0f06]
1001
+ - Updated dependencies [d77d1b7]
1002
+ - Updated dependencies [0f9faa2]
1003
+ - Updated dependencies [2d1ddf0]
1004
+ - Updated dependencies [354b00f]
1005
+ - Updated dependencies [3de535b]
1006
+ - Updated dependencies [fe2e15a]
1007
+ - Updated dependencies [5b79a34]
1008
+ - Updated dependencies [502564d]
1009
+ - Updated dependencies [603cab8]
1010
+ - Updated dependencies [c757854]
1011
+ - Updated dependencies [471839d]
1012
+ - Updated dependencies [507b92a]
1013
+ - Updated dependencies [46365ab]
1014
+ - Updated dependencies [b508244]
1015
+ - Updated dependencies [df95346]
1016
+ - Updated dependencies [3dede58]
1017
+ - Updated dependencies [c6b6bb4]
1018
+ - Updated dependencies [594508e]
1019
+ - Updated dependencies [7cf42fe]
1020
+ - Updated dependencies [5966c2a]
1021
+ - Updated dependencies [59c544d]
1022
+ - Updated dependencies [0045682]
1023
+ - Updated dependencies [7309c81]
1024
+ - Updated dependencies [2f59da0]
1025
+ - Updated dependencies [d56012f]
1026
+ - Updated dependencies [f78dd83]
1027
+ - Updated dependencies [a2cd18a]
1028
+ - Updated dependencies [9051802]
1029
+ - Updated dependencies [20bc1ec]
1030
+ - Updated dependencies [1c625ca]
1031
+ - Updated dependencies [2f8328c]
1032
+ - Updated dependencies [2a6c279]
1033
+ - Updated dependencies [9319586]
1034
+ - Updated dependencies [8c8f0df]
1035
+ - Updated dependencies [8ad609c]
1036
+ - Updated dependencies [bbee302]
1037
+ - Updated dependencies [90c2b15]
1038
+ - Updated dependencies [4638aaa]
1039
+ - Updated dependencies [0222d3c]
1040
+ - Updated dependencies [08863dd]
1041
+ - Updated dependencies [071d0dc]
1042
+ - Updated dependencies [f293d45]
1043
+ - Updated dependencies [56664f5]
1044
+ - Updated dependencies [71f205d]
1045
+ - Updated dependencies [f067930]
1046
+ - Updated dependencies [414395b]
1047
+ - Updated dependencies [42eeb7d]
1048
+ - Updated dependencies [31cbe90]
1049
+ - Updated dependencies [6b7129a]
1050
+ - Updated dependencies [c5adfe1]
1051
+ - Updated dependencies [97ace2a]
1052
+ - Updated dependencies [26e1029]
1053
+ - Updated dependencies [0a936ea]
1054
+ - Updated dependencies [90bbf25]
1055
+ - Updated dependencies [023c00b]
1056
+ - Updated dependencies [eb91eba]
1057
+ - Updated dependencies [42da73d]
1058
+ - Updated dependencies [01e124d]
1059
+ - Updated dependencies [ef7b5ef]
1060
+ - Updated dependencies [9514767]
1061
+ - Updated dependencies [8f20201]
1062
+ - Updated dependencies [155507e]
1063
+ - Updated dependencies [643b7c7]
1064
+ - Updated dependencies [7bba90b]
1065
+ - Updated dependencies [8813b90]
1066
+ - Updated dependencies [108ba8d]
1067
+ - Updated dependencies [2a5f04a]
1068
+ - Updated dependencies [4f740b0]
1069
+ - Updated dependencies [7ce02eb]
1070
+ - Updated dependencies [b4ad984]
1071
+ - Updated dependencies [e7a7506]
1072
+ - Updated dependencies [a9f32df]
1073
+ - Updated dependencies [aeb9b27]
1074
+ - Updated dependencies [7d27da0]
1075
+ - Updated dependencies [d0d5205]
1076
+ - Updated dependencies [1a15893]
1077
+ - Updated dependencies [b70e534]
1078
+ - Updated dependencies [7e05d8e]
1079
+ - Updated dependencies [8f1851e]
1080
+ - Updated dependencies [61ea810]
1081
+ - Updated dependencies [2233a85]
1082
+ - Updated dependencies [67452d1]
1083
+ - Updated dependencies [089767f]
1084
+ - Updated dependencies [a13827e]
1085
+ - Updated dependencies [66d99ec]
1086
+ - Updated dependencies [cb43296]
1087
+ - Updated dependencies [b61afc1]
1088
+ - Updated dependencies [79021fc]
1089
+ - Updated dependencies [7733604]
1090
+ - Updated dependencies [4921a95]
1091
+ - Updated dependencies [40e420f]
1092
+ - Updated dependencies [62dd69a]
1093
+ - Updated dependencies [d13004a]
1094
+ - Updated dependencies [be7360c]
1095
+ - Updated dependencies [e15e679]
1096
+ - Updated dependencies [2ab1257]
1097
+ - Updated dependencies [0fc6219]
1098
+ - Updated dependencies [061406d]
1099
+ - Updated dependencies [e4c8b6c]
1100
+ - Updated dependencies [acb10f6]
1101
+ - Updated dependencies [605e190]
1102
+ - Updated dependencies [c6c59f1]
1103
+ - Updated dependencies [b0e78a8]
1104
+ - Updated dependencies [f31cc8d]
1105
+ - Updated dependencies [f343dc4]
1106
+ - Updated dependencies [8269e32]
1107
+ - Updated dependencies [74f7339]
1108
+ - Updated dependencies [a6c35a2]
1109
+ - Updated dependencies [c2f1002]
1110
+ - Updated dependencies [4cc4fb7]
1111
+ - Updated dependencies [97b6658]
1112
+ - Updated dependencies [28d1eb7]
1113
+ - Updated dependencies [06770c0]
1114
+ - Updated dependencies [2c26040]
1115
+ - Updated dependencies [f758cec]
1116
+ - Updated dependencies [5b47ab5]
1117
+ - Updated dependencies [b09d8d9]
1118
+ - Updated dependencies [b09d8d9]
1119
+ - Updated dependencies [8675db6]
1120
+ - Updated dependencies [b09d8d9]
1121
+ - Updated dependencies [27358d5]
1122
+ - Updated dependencies [1c3da1f]
1123
+ - Updated dependencies [c1f344b]
1124
+ - Updated dependencies [3eb1b2b]
1125
+ - Updated dependencies [9c93465]
1126
+ - Updated dependencies [a34fd2e]
1127
+ - Updated dependencies [ebb209c]
1128
+ - Updated dependencies [76bcb83]
1129
+ - Updated dependencies [59b85c0]
1130
+ - Updated dependencies [889ae47]
1131
+ - Updated dependencies [4f4c3fb]
1132
+ - Updated dependencies [78f0be8]
1133
+ - Updated dependencies [6e357ed]
1134
+ - Updated dependencies [d6938bf]
1135
+ - Updated dependencies [35f7fb4]
1136
+ - Updated dependencies [0410522]
1137
+ - Updated dependencies [63b33e6]
1138
+ - Updated dependencies [f163028]
1139
+ - Updated dependencies [814db6d]
1140
+ - Updated dependencies [a5302c7]
1141
+ - Updated dependencies [31e0be9]
1142
+ - Updated dependencies [4bfd455]
1143
+ - Updated dependencies [ffd2ce2]
1144
+ - Updated dependencies [2a44c1d]
1145
+ - Updated dependencies [7084313]
1146
+ - Updated dependencies [f07808c]
1147
+ - Updated dependencies [7ffc3d3]
1148
+ - Updated dependencies [88346ba]
1149
+ - Updated dependencies [4631592]
1150
+ - Updated dependencies [62f8017]
1151
+ - Updated dependencies [32ff033]
1152
+ - Updated dependencies [a831df1]
1153
+ - Updated dependencies [f752ee3]
1154
+ - Updated dependencies [a1b61e0]
1155
+ - Updated dependencies [cd6b9f2]
1156
+ - Updated dependencies [2cb6d3c]
1157
+ - Updated dependencies [af2a095]
1158
+ - Updated dependencies [5ac93d4]
1159
+ - Updated dependencies [695cfbd]
1160
+ - Updated dependencies [0e043d8]
1161
+ - Updated dependencies [93f267f]
1162
+ - Updated dependencies [7445149]
1163
+ - Updated dependencies [ec796d5]
1164
+ - Updated dependencies [071d0dc]
1165
+ - Updated dependencies [0024abf]
1166
+ - Updated dependencies [8dd98bf]
1167
+ - Updated dependencies [e87fea1]
1168
+ - Updated dependencies [c65e529]
1169
+ - Updated dependencies [0848bea]
1170
+ - Updated dependencies [d51bed2]
1171
+ - Updated dependencies [dadd1ad]
1172
+ - Updated dependencies [acbf364]
1173
+ - Updated dependencies [3ca34c1]
1174
+ - Updated dependencies [7adc841]
1175
+ - Updated dependencies [239c3a3]
1176
+ - Updated dependencies [b8b3c64]
1177
+ - Updated dependencies [2f2e63c]
1178
+ - Updated dependencies [4845f85]
1179
+ - Updated dependencies [486d526]
1180
+ - Updated dependencies [94a0bbc]
1181
+ - Updated dependencies [d6bfb3d]
1182
+ - Updated dependencies [8a9c079]
1183
+ - Updated dependencies [7b005b4]
1184
+ - Updated dependencies [cc3555e]
1185
+ - Updated dependencies [a2266a6]
1186
+ - Updated dependencies [d25a0ec]
1187
+ - Updated dependencies [89d7b35]
1188
+ - Updated dependencies [94f7b6a]
1189
+ - Updated dependencies [5c94f83]
1190
+ - Updated dependencies [ea936f3]
1191
+ - Updated dependencies [0c0fbd9]
1192
+ - Updated dependencies [667b83e]
1193
+ - Updated dependencies [f3141d8]
1194
+ - Updated dependencies [5487c20]
1195
+ - Updated dependencies [aa8b847]
1196
+ - Updated dependencies [7687f7b]
1197
+ - Updated dependencies [5a84d41]
1198
+ - Updated dependencies [fd3013a]
1199
+ - Updated dependencies [85ec26d]
1200
+ - Updated dependencies [73e576f]
1201
+ - Updated dependencies [f6476fc]
1202
+ - Updated dependencies [69ac82c]
1203
+ - Updated dependencies [4ac12ef]
1204
+ - Updated dependencies [833ed84]
1205
+ - Updated dependencies [a18abf3]
1206
+ - Updated dependencies [c6a4eeb]
1207
+ - Updated dependencies [1659072]
1208
+ - Updated dependencies [f450ae7]
1209
+ - Updated dependencies [abceb0d]
1210
+ - Updated dependencies [627b188]
1211
+ - Updated dependencies [8d4eae7]
1212
+ - Updated dependencies [c5a5996]
1213
+ - Updated dependencies [0c302a7]
1214
+ - Updated dependencies [b88f5e8]
1215
+ - Updated dependencies [857a6cf]
1216
+ - Updated dependencies [65a3a84]
1217
+ - Updated dependencies [6633337]
1218
+ - Updated dependencies [21676eb]
1219
+ - Updated dependencies [3f296bf]
1220
+ - Updated dependencies [e474853]
1221
+ - Updated dependencies [e9cb9ab]
1222
+ - Updated dependencies [42cc219]
1223
+ - Updated dependencies [d42a92f]
1224
+ - Updated dependencies [569611f]
1225
+ - Updated dependencies [51d74ad]
1226
+ - Updated dependencies [d7e0b42]
1227
+ - Updated dependencies [3510e4a]
1228
+ - Updated dependencies [f00d8d4]
1229
+ - Updated dependencies [5326b36]
1230
+ - Updated dependencies [aa4b90d]
1231
+ - Updated dependencies [ccd9397]
1232
+ - Updated dependencies [503be86]
1233
+ - Updated dependencies [54299ca]
1234
+ - Updated dependencies [ae490ef]
1235
+ - Updated dependencies [e124711]
1236
+ - Updated dependencies [dc61def]
1237
+ - Updated dependencies [bca935b]
1238
+ - Updated dependencies [d92c72d]
1239
+ - Updated dependencies [c54c822]
1240
+ - Updated dependencies [8dcc0f5]
1241
+ - Updated dependencies [75b9e51]
1242
+ - Updated dependencies [f61c8cf]
1243
+ - Updated dependencies [e3ef52b]
1244
+ - Updated dependencies [0a2f233]
1245
+ - Updated dependencies [8621cdd]
1246
+ - Updated dependencies [251e888]
1247
+ - Updated dependencies [07f1822]
1248
+ - Updated dependencies [e336549]
1249
+ - Updated dependencies [3bb9340]
1250
+ - Updated dependencies [1e604c4]
1251
+ - Updated dependencies [04fab5e]
1252
+ - Updated dependencies [183b4c4]
1253
+ - Updated dependencies [7f713b6]
1254
+ - Updated dependencies [d40f43a]
1255
+ - Updated dependencies [2fdb36e]
1256
+ - Updated dependencies [e787608]
1257
+ - Updated dependencies [6f23667]
1258
+ - Updated dependencies [cde1975]
1259
+ - Updated dependencies [0bc685a]
1260
+ - Updated dependencies [20526f5]
1261
+ - Updated dependencies [efedd28]
1262
+ - Updated dependencies [5d21a48]
1263
+ - Updated dependencies [5278e11]
1264
+ - Updated dependencies [c5eef1d]
1265
+ - Updated dependencies [e5e7ee0]
1266
+ - Updated dependencies [23dba62]
1267
+ - Updated dependencies [e0f300b]
1268
+ - Updated dependencies [761a0ba]
1269
+ - Updated dependencies [c960170]
1270
+ - Updated dependencies [19365b7]
1271
+ - Updated dependencies [ba98e26]
1272
+ - Updated dependencies [b7ed26d]
1273
+ - Updated dependencies [a2ebea2]
1274
+ - Updated dependencies [800bdb0]
1275
+ - Updated dependencies [9d4dfc4]
1276
+ - Updated dependencies [1059965]
1277
+ - Updated dependencies [def5919]
1278
+ - Updated dependencies [ee264b2]
1279
+ - Updated dependencies [60b672e]
1280
+ - Updated dependencies [f104bab]
1281
+ - Updated dependencies [68dea0b]
1282
+ - Updated dependencies [6b441a8]
1283
+ - Updated dependencies [64f8cbe]
1284
+ - Updated dependencies [6cb81c7]
1285
+ - Updated dependencies [61282f9]
1286
+ - Updated dependencies [ce0cfe9]
1287
+ - Updated dependencies [04f1182]
1288
+ - Updated dependencies [3a2dde7]
1289
+ - Updated dependencies [8c20f75]
1290
+ - Updated dependencies [be87153]
1291
+ - Updated dependencies [dd0f681]
1292
+ - Updated dependencies [60f0dd8]
1293
+ - Updated dependencies [a87c5cd]
1294
+ - Updated dependencies [a47f338]
1295
+ - Updated dependencies [b3a3d83]
1296
+ - Updated dependencies [7a55913]
1297
+ - Updated dependencies [35accbf]
1298
+ - Updated dependencies [6038de7]
1299
+ - Updated dependencies [fc5f536]
1300
+ - Updated dependencies [5647006]
1301
+ - Updated dependencies [e654bfd]
1302
+ - Updated dependencies [01a7337]
1303
+ - Updated dependencies [b45c71e]
1304
+ - Updated dependencies [d71ff32]
1305
+ - Updated dependencies [f8cfbb4]
1306
+ - Updated dependencies [6e6c872]
1307
+ - Updated dependencies [2598216]
1308
+ - Updated dependencies [11949fc]
1309
+ - Updated dependencies [2c7e62d]
1310
+ - Updated dependencies [eb95d97]
1311
+ - Updated dependencies [b098b0e]
1312
+ - Updated dependencies [4d00b13]
1313
+ - Updated dependencies [1363084]
1314
+ - Updated dependencies [fa5758e]
1315
+ - Updated dependencies [38f7e4f]
1316
+ - Updated dependencies [eb7613c]
1317
+ - Updated dependencies [c57f3cf]
1318
+ - Updated dependencies [ecc9110]
1319
+ - Updated dependencies [9aa5510]
1320
+ - Updated dependencies [e4c2dc8]
1321
+ - Updated dependencies [97faca3]
1322
+ - Updated dependencies [57bab76]
1323
+ - Updated dependencies [c89d18c]
1324
+ - Updated dependencies [1bd2795]
1325
+ - Updated dependencies [f7bd4e2]
1326
+ - Updated dependencies [361bd5b]
1327
+ - Updated dependencies [aac90a5]
1328
+ - Updated dependencies [3da3da5]
1329
+ - Updated dependencies [1e6ab15]
1330
+ - Updated dependencies [b90086a]
1331
+ - Updated dependencies [8186a70]
1332
+ - Updated dependencies [a329cca]
1333
+ - Updated dependencies [c87ef70]
1334
+ - Updated dependencies [3cb0618]
1335
+ - Updated dependencies [32a0874]
1336
+ - Updated dependencies [6eec18c]
1337
+ - Updated dependencies [4d7bebf]
1338
+ - Updated dependencies [821ac7a]
1339
+ - Updated dependencies [8f81731]
1340
+ - Updated dependencies [7055c22]
1341
+ - Updated dependencies [785a748]
1342
+ - Updated dependencies [3af0354]
1343
+ - Updated dependencies [866ff16]
1344
+ - Updated dependencies [5a85e67]
1345
+ - Updated dependencies [8b50cb3]
1346
+ - Updated dependencies [a0fdc56]
1347
+ - Updated dependencies [b95577a]
1348
+ - Updated dependencies [0dcbc11]
1349
+ - Updated dependencies [d88f3e9]
1350
+ - Updated dependencies [ad5fe25]
1351
+ - Updated dependencies [c183a12]
1352
+ - Updated dependencies [83c161f]
1353
+ - Updated dependencies [d8c4957]
1354
+ - Updated dependencies [b9f930b]
1355
+ - Updated dependencies [f24cb83]
1356
+ - Updated dependencies [5dbbb92]
1357
+ - Updated dependencies [ea90179]
1358
+ - Updated dependencies [1818998]
1359
+ - Updated dependencies [ce92674]
1360
+ - Updated dependencies [5ef0b5b]
1361
+ - Updated dependencies [8c2db68]
1362
+ - Updated dependencies [22b5e54]
1363
+ - Updated dependencies [0166bd5]
1364
+ - Updated dependencies [8064b07]
1365
+ - Updated dependencies [09ee21c]
1366
+ - Updated dependencies [4a56dbd]
1367
+ - Updated dependencies [289d04a]
1368
+ - Updated dependencies [f549a0d]
1369
+ - Updated dependencies [48fbacb]
1370
+ - Updated dependencies [06df4fa]
1371
+ - Updated dependencies [3fc2e48]
1372
+ - Updated dependencies [c9b809f]
1373
+ - Updated dependencies [e8f435c]
1374
+ - Updated dependencies [32386f8]
1375
+ - Updated dependencies [9b702dc]
1376
+ - Updated dependencies [ab16331]
1377
+ - Updated dependencies [41610f6]
1378
+ - Updated dependencies [69f1dfd]
1379
+ - Updated dependencies [bbe05de]
1380
+ - Updated dependencies [355e951]
1381
+ - Updated dependencies [a1dd1e4]
1382
+ - Updated dependencies [dadb43f]
1383
+ - Updated dependencies [3556b67]
1384
+ - @objectstack/spec@17.0.0
1385
+ - @objectstack/core@17.0.0
1386
+ - @objectstack/platform-objects@17.0.0
1387
+
3
1388
  ## 17.0.0-rc.6
4
1389
 
5
1390
  ### Patch Changes