From 64fdd986cb9d8856ca03cce2b9785ea8ec003655 Mon Sep 17 00:00:00 2001 From: "iTwin.js admin" <38288322+imodeljs-admin@users.noreply.github.com> Date: Wed, 15 Jul 2026 03:43:27 -0400 Subject: [PATCH] Release packages [publish docs] (alpha) --- .changeset/pre.json | 28 +++++--- packages/core-interop/CHANGELOG.md | 15 +++++ packages/core-interop/package.json | 2 +- packages/hierarchies-react/CHANGELOG.md | 16 +++++ packages/hierarchies-react/package.json | 2 +- packages/hierarchies/CHANGELOG.md | 15 +++++ packages/hierarchies/package.json | 2 +- packages/shared/CHANGELOG.md | 89 +++++++++++++++++++++++++ packages/shared/package.json | 2 +- packages/unified-selection/CHANGELOG.md | 7 ++ packages/unified-selection/package.json | 2 +- 11 files changed, 164 insertions(+), 16 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 966de31cd..bfaac79ca 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -20,9 +20,11 @@ "presentation-test-utilities": "0.0.0", "@itwin/presentation-testing": "5.3.1", "@itwin/unified-selection": "1.3.0", - "@itwin/unified-selection-react": "1.0.0" + "@itwin/unified-selection-react": "1.0.0", + "@itwin/presentation-content": "0.1.0" }, "changesets": [ + "add-ecsql-class-selector", "all-meals-fetch", "angry-wings-accept", "big-squids-crash", @@ -34,12 +36,13 @@ "clean-games-care", "clever-boats-knock", "common-memes-bake", - "cool-apples-tap", "define-hierarchy-level-factories", + "direct-class-properties", "dirty-hounds-divide", "dry-apes-do", "eager-wolves-wonder", "early-ads-occur", + "early-facts-hide", "eight-cloths-cut", "eight-dolls-divide", "eighty-wasps-speak", @@ -50,17 +53,17 @@ "fast-parents-read", "flat-dodos-smile", "fluffy-oranges-raise", - "forty-sides-dig", "four-bags-look", "four-drinks-sneeze", "four-shoes-repeat", - "four-toys-fetch", "fruity-kiwis-cross", "fuzzy-chairs-win", + "gentle-otters-cover", "gentle-socks-shout", "gold-days-end", "good-actors-dance", "good-bobcats-matter", + "good-hawks-dig", "great-boxes-joke", "green-candies-refuse", "grumpy-trains-cough", @@ -69,7 +72,6 @@ "honest-suits-check", "honest-wasps-scream", "hot-cheetahs-hope", - "hungry-bees-love", "hungry-otters-wave", "icy-islands-bake", "imodel-instance-label-override-factory", @@ -79,14 +81,15 @@ "kind-meals-eat", "late-wings-act", "legal-sites-marry", - "loud-crews-behave", "lovely-terms-switch", "lucky-mirrors-allow", "many-starfishes-brake", "metal-shoes-change", "mighty-heads-yell", "modern-eels-chew", - "moody-doodles-work", + "named-ecsql-bindings-core-interop", + "named-ecsql-bindings-hierarchies", + "named-ecsql-bindings-shared", "new-buses-raise", "ninety-cooks-join", "ninety-geese-jam", @@ -102,8 +105,10 @@ "plain-impalas-hunt", "plenty-boats-judge", "plenty-pillows-tickle", + "property-category", "proud-jeans-bow", "purple-dots-knock", + "query-cancellation", "quiet-games-wear", "real-pets-cover", "red-hats-hug", @@ -113,27 +118,27 @@ "ripe-tires-peel", "rude-rivers-post", "sad-mugs-pump", + "schema-version-core-interop", + "schema-version-shared", "shaggy-shoes-deny", "sharp-tires-add", "silver-towns-feel", - "six-days-write", "six-melons-cough", "sixty-spies-jump", "slimy-dodos-battle", "smart-teeth-visit", "solid-eggs-write", - "solid-eyes-bathe", + "solid-peaches-bathe", "stale-schools-burn", - "strong-maps-start", "stupid-cameras-obey", "stupid-otters-listen", "sweet-cougars-rhyme", + "swift-bears-dance", "tall-bugs-march", "tame-years-make", "ten-crabs-look", "tender-carrots-search", "thirty-ends-sit", - "tidy-stars-poke", "tricky-rings-learn", "twelve-roses-fry", "twenty-berries-collect", @@ -141,6 +146,7 @@ "upset-candies-drop", "violet-lies-design", "wacky-birds-watch", + "warm-books-sing", "wise-plants-try", "wise-stamps-wait", "young-forks-punch", diff --git a/packages/core-interop/CHANGELOG.md b/packages/core-interop/CHANGELOG.md index 325e28cf0..f59acdfc6 100644 --- a/packages/core-interop/CHANGELOG.md +++ b/packages/core-interop/CHANGELOG.md @@ -1,5 +1,20 @@ # @itwin/presentation-core-interop +## 2.0.0-alpha.2 + +### Minor Changes + +- [#1445](https://github.com/iTwin/presentation/pull/1445): `EC.Class`: Added `getOwnProperties` method that returns only the properties defined directly on the class, excluding those inherited from base classes. +- [#1350](https://github.com/iTwin/presentation/pull/1350): `createECSqlQueryExecutor`: Updated to handle both positional and named bindings when creating query readers. +- [#1444](https://github.com/iTwin/presentation/pull/1444): `EC.Property`: Added `category` attribute that provides access to the property's `EC.PropertyCategory`. Also added a `description` attribute to `EC.SchemaItem`. +- [#1363](https://github.com/iTwin/presentation/pull/1363): `createECSchemaProvider`: Populate `version` property on `EC.Schema` objects from the underlying `@itwin/ecschema-metadata` schema version fields. + +### Patch Changes + +- [#1377](https://github.com/iTwin/presentation/pull/1377): `createECSqlQueryExecutor`: queries are now automatically cancelled when consumers break out of iteration. +- Updated dependencies: + - @itwin/presentation-shared@2.0.0-alpha.11 + ## 2.0.0-alpha.1 ### Patch Changes diff --git a/packages/core-interop/package.json b/packages/core-interop/package.json index c705ae52f..e2ff30481 100644 --- a/packages/core-interop/package.json +++ b/packages/core-interop/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/presentation-core-interop", - "version": "2.0.0-alpha.1", + "version": "2.0.0-alpha.2", "description": "The package acts as a layer between iTwin.js Core and Presentation packages.", "license": "MIT", "author": { diff --git a/packages/hierarchies-react/CHANGELOG.md b/packages/hierarchies-react/CHANGELOG.md index 03c61e7ef..e4b78cc98 100644 --- a/packages/hierarchies-react/CHANGELOG.md +++ b/packages/hierarchies-react/CHANGELOG.md @@ -1,5 +1,21 @@ # @itwin/presentation-hierarchies-react +## 2.0.0-alpha.63 + +### Major Changes + +- [#1425](https://github.com/iTwin/presentation/pull/1425): Moved the package to use `@mui/material` and `@stratakit/mui`. + + **Breaking:** Removed `@stratakit/foundations`, `@stratakit/icons` optional peer dependencies. Added `@mui/material` and `@stratakit/mui` as optional peer dependencies. + +### Patch Changes + +- [#1325](https://github.com/iTwin/presentation/pull/1325): Add accessible name for tree context menu. +- Updated dependencies: + - @itwin/presentation-shared@2.0.0-alpha.11 + - @itwin/presentation-hierarchies@2.0.0-alpha.16 + - @itwin/unified-selection@1.8.1-alpha.0 + ## 2.0.0-alpha.62 ### Patch Changes diff --git a/packages/hierarchies-react/package.json b/packages/hierarchies-react/package.json index 85705adaf..c643223e7 100644 --- a/packages/hierarchies-react/package.json +++ b/packages/hierarchies-react/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/presentation-hierarchies-react", - "version": "2.0.0-alpha.62", + "version": "2.0.0-alpha.63", "description": "React components based on `@itwin/presentation-hierarchies`", "license": "MIT", "author": { diff --git a/packages/hierarchies/CHANGELOG.md b/packages/hierarchies/CHANGELOG.md index 7872414f2..01800cfe6 100644 --- a/packages/hierarchies/CHANGELOG.md +++ b/packages/hierarchies/CHANGELOG.md @@ -1,5 +1,20 @@ # @itwin/presentation-hierarchies +## 2.0.0-alpha.16 + +### Major Changes + +- [#1350](https://github.com/iTwin/presentation/pull/1350): **Breaking:** `createInstanceKeysFilteredQuery` now correctly appends `IdSet` bindings in both positional and named binding formats, using the `IdSet` virtual table instead of `InVirtualSet`. + + Consumers that provide their own `LimitingECSqlQueryExecutor` or `imodelAccess` may now receive named bindings (`Record`) through the public `createQueryReader` path. + + To migrate, update custom query reader / executor implementations to handle both positional bindings (`ECSqlBinding[]`) and named bindings (`Record`), or use the default implementation provided by the `@itwin/presentation-core-interop` package, `createECSqlQueryExecutor` function. + +### Patch Changes + +- Updated dependencies: + - @itwin/presentation-shared@2.0.0-alpha.11 + ## 2.0.0-alpha.15 ### Major Changes diff --git a/packages/hierarchies/package.json b/packages/hierarchies/package.json index e34fd2a3c..0f7cda75f 100644 --- a/packages/hierarchies/package.json +++ b/packages/hierarchies/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/presentation-hierarchies", - "version": "2.0.0-alpha.15", + "version": "2.0.0-alpha.16", "description": "A package for creating hierarchies based on data in iTwin.js iModels.", "license": "MIT", "author": { diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md index 4bb324c18..1eb3ace14 100644 --- a/packages/shared/CHANGELOG.md +++ b/packages/shared/CHANGELOG.md @@ -1,5 +1,94 @@ # @itwin/presentation-shared +## 2.0.0-alpha.11 + +### Major Changes + +- [#1445](https://github.com/iTwin/presentation/pull/1445): `EC.Class`: Added `getOwnProperties` method that returns only the properties defined directly on the class, excluding those inherited from base classes. +- [#1360](https://github.com/iTwin/presentation/pull/1360): `createRelationshipPathJoinClause` now returns `{ joins: string; bindings?: Record }` instead of a plain `string`. Callers must be updated to read the SQL clause from the `joins` property: + + ```ts + // Before + const joinClause = await createRelationshipPathJoinClause({ + schemaProvider, + path, + }); + + // After + const { joins: joinClause, bindings } = + await createRelationshipPathJoinClause({ schemaProvider, path }); + ``` + + `RelationshipPathStep` now accepts an optional `instanceFilter` attribute. When provided, the resolved expression is appended as an `AND` condition to the relevant JOIN's `ON` clause. ECSQL parameter bindings declared in `instanceFilter.bindings` are collected across all steps and returned in the `bindings` field of the result. + +- [#1350](https://github.com/iTwin/presentation/pull/1350): `ECSqlQueryDef.bindings` is now `ECSqlBinding[] | Record` (previously `ECSqlBinding[]`). This is non-breaking for consumers who only define queries, but breaking for code that reads or forwards bindings (e.g., custom `ECSqlQueryExecutor` implementations) because it must now handle both formats. + + Migration example: + + ```ts + // Before + function handleBindings(bindings: ECSqlBinding[]) { + bindings.forEach((b, i) => bind(i + 1, b)); + } + + // After + function handleBindings( + bindings: ECSqlBinding[] | Record + ) { + const entries: Array<[string | number, ECSqlBinding]> = Array.isArray( + bindings + ) + ? bindings.map((b, i) => [i + 1, b]) + : Object.entries(bindings); + for (const [key, b] of entries) { + bind(key, b); + } + } + ``` + + Alternatively, update to the latest `@itwin/presentation-core-interop` which handles both binding formats out of the box. + +- [#1444](https://github.com/iTwin/presentation/pull/1444): `EC.Property`: Added `category` attribute that provides access to the property's `EC.PropertyCategory`. Also added a `description` attribute to `EC.SchemaItem`. +- [#1363](https://github.com/iTwin/presentation/pull/1363): Add `version` property to `EC.Schema` interface. Any code that manually implements the `EC.Schema` interface must now provide a `version: { read: number; write: number; minor: number }` object matching the EC schema version format `"read.write.minor"`. + + Consumers who obtain `EC.Schema` objects exclusively through `createECSchemaProvider` from `@itwin/presentation-core-interop` are unaffected — upgrading to the latest `@itwin/presentation-core-interop` is sufficient. + + Migration example for custom `EC.Schema` implementations: + + ```ts + // Before + const schema: EC.Schema = { + name: "MySchema", + getClass: async () => undefined, + getCustomAttributes: async () => new Map(), + }; + + // After + const schema: EC.Schema = { + name: "MySchema", + version: { read: 1, write: 0, minor: 0 }, + getClass: async () => undefined, + getCustomAttributes: async () => new Map(), + }; + ``` + +### Minor Changes + +- [#1379](https://github.com/iTwin/presentation/pull/1379): `ECSql.createClassSelector`: Add a utility that creates a bracket-quoted ECSQL class selector (`[SchemaName].[ClassName]`) from a full class name. +- [#1361](https://github.com/iTwin/presentation/pull/1361): `TypedPrimitiveValue`: The `type` fields now use `Extract` to stay in sync with `PrimitiveValueType`. Additionally, the `koqName` property is now available for `"Integer"` and `"Long"` typed values, not just `"Double"`. +- [#1357](https://github.com/iTwin/presentation/pull/1357): Added new public APIs for describing and carrying property values: + + - `ValueDescriptor` — a discriminated union (`PrimitiveValueDescriptor | StructValueDescriptor | ArrayValueDescriptor | NavigationValueDescriptor`) that describes the shape of a value without carrying the value itself. + - `NavigationValueDescriptor` — describes a navigation property value (a reference to another EC instance). The runtime value stays the referenced instance's id, while this descriptor additionally carries the reference's target class name (`targetClassName`) as metadata. + - `PrimitiveValueDescriptor` now carries optional enumeration metadata (via `enumeration`) for enumeration-backed values. Only available on `String | Integer | Long`-typed descriptors, with the enumerator value type discriminated by `type` (`String` → `string`, `Integer | Long` → `number`). The runtime value stays the raw backing primitive, while the descriptor preserves the enumeration's name, strictness, and declared enumerators (value, label, optional description) so consumers can map raw values to display labels without re-reading schema. + - `StructValue` and `ArrayValue` — composite value types complementing the existing `PrimitiveValue`. `Value` is the new top-level union (`PrimitiveValue | StructValue | ArrayValue | undefined`) that represents any value that can be assigned to an EC instance property. + +### Patch Changes + +- [#1429](https://github.com/iTwin/presentation/pull/1429): `createRelationshipPathJoinClause`: The step `instanceFilter` alias placeholders are now substituted in both their bare (`this.`, `rel.`) and bracket-quoted (`[this].`, `[rel].`) forms. + + Previously only the bare form was replaced, so a bracket-quoted placeholder was left referencing a non-existent alias in the generated JOIN `ON` clause. + ## 2.0.0-alpha.10 ### Minor Changes diff --git a/packages/shared/package.json b/packages/shared/package.json index d84e37b09..54180cd22 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/presentation-shared", - "version": "2.0.0-alpha.10", + "version": "2.0.0-alpha.11", "description": "The package contains types and utilities used across different iTwin.js Presentation packages.", "license": "MIT", "author": { diff --git a/packages/unified-selection/CHANGELOG.md b/packages/unified-selection/CHANGELOG.md index fc6c47134..9edd880af 100644 --- a/packages/unified-selection/CHANGELOG.md +++ b/packages/unified-selection/CHANGELOG.md @@ -1,5 +1,12 @@ # @itwin/unified-selection +## 1.8.1-alpha.0 + +### Patch Changes + +- Updated dependencies: + - @itwin/presentation-shared@2.0.0-alpha.11 + ## 1.8.0 ### Minor Changes diff --git a/packages/unified-selection/package.json b/packages/unified-selection/package.json index 63d18f3a5..9c78784b4 100644 --- a/packages/unified-selection/package.json +++ b/packages/unified-selection/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/unified-selection", - "version": "1.8.0", + "version": "1.8.1-alpha.0", "description": "Package for managing unified selection in iTwin.js applications.", "license": "MIT", "repository": {