Skip to content

Release 4.5.4#532

Merged
TimPurdum merged 27 commits into
mainfrom
develop
Jun 19, 2026
Merged

Release 4.5.4#532
TimPurdum merged 27 commits into
mainfrom
develop

Conversation

@TimPurdum

Copy link
Copy Markdown
Collaborator

Release Notes

Bug Fixes

  • Restored missing SnappingOptions properties and getters/setters.
  • Added auto-population of Geometry extents when GeometryEngine methods dependent on the new ArcGIS operators failed to return the extent.

Dependency and version updates:

  • Updated several dependencies in package.json, including esbuild, protobufjs, eslint, and related plugins, to their latest versions to address critical vulnerabilities.

dependabot Bot and others added 27 commits June 10, 2026 21:34
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.22 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits/4.18.1)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](WebReflection/flatted@v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [minimatch](https://github.com/isaacs/minimatch) to 10.2.5 and updates ancestor dependencies [minimatch](https://github.com/isaacs/minimatch), [eslint](https://github.com/eslint/eslint), [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint). These dependencies need to be updated together.


Updates `minimatch` from 9.0.5 to 10.2.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v9.0.5...v10.2.5)

Updates `eslint` from 9.39.1 to 10.4.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v9.39.1...v10.4.1)

Updates `eslint-plugin-sonarjs` from 3.0.5 to 4.0.3
- [Release notes](https://github.com/SonarSource/SonarJS/releases)
- [Commits](https://github.com/SonarSource/SonarJS/commits)

Updates `typescript-eslint` from 8.53.1 to 8.61.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 10.2.5
  dependency-type: indirect
- dependency-name: eslint
  dependency-version: 10.4.1
  dependency-type: direct:development
- dependency-name: eslint-plugin-sonarjs
  dependency-version: 4.0.3
  dependency-type: direct:development
- dependency-name: typescript-eslint
  dependency-version: 8.61.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.27.1 to 0.28.1.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2025.md)
- [Commits](evanw/esbuild@v0.27.1...v0.28.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
The 4.5.x release accidentally truncated SnappingOptions.gb.cs right after the
property getters (commit c3ab364), dropping the entire Property Setters and
collection-helper regions. This removed SetEnabled, SetGridEnabled, SetDistance,
SetFeatureEnabled, SetSelfEnabled, SetAttributeRulesEnabled, and SetFeatureSources,
breaking runtime snapping/grid toggling for consumers (reported against 4.5.1).

Restores the complete generated file from f02afef (the commit immediately before
the truncation), which re-adds exactly the 7 setters plus the Add/Remove
FeatureSources collection helpers and nothing else. Adds SnappingOptionsApiTests
as a public-API contract guard so a future code-generation split cannot silently
drop these members again.

Versioning/release left to the maintainer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Customer reported (against 4.5.1) that GeometryEngine.Union returned a geometry
with a null Extent, breaking map.GoTo(union.Extent). The union/extent code path is
unchanged from the working 4.4.4 line, so this is not reproducible from source —
these tests lock in the behavior so any future change that drops the extent is caught:

- GeometryExtentSerializationTests: unit-level guard deserializing the exact JSON the
  JS union() produces and asserting Extent (and a full round-trip) survive.
- GeometryEngineTests.TestUnion: extends the browser test to assert the unioned
  geometry has the expected Extent bounds and that GetExtent() returns it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Addresses Copilot review: the contract test only guarded the 4 bool? setters and
4 bool? properties. Since the goal is to catch any future truncation of the
generated runtime API, cover everything the 4.5.x cut removed:
- all 7 setters (SetEnabled/GridEnabled/FeatureEnabled/SelfEnabled/AttributeRulesEnabled,
  plus SetDistance(double?) and SetFeatureSources(IReadOnlyList<...>))
- all 7 parameters (the 5 bool?, Distance, FeatureSources)
- the AddToFeatureSources/RemoveFromFeatureSources collection helpers

Also makes the behavioral test async/await instead of blocking on GetResult().

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
buildDotNetGeometry now computes a missing extent from the geometry's coordinates, so results from the operator API (e.g. unionOperator) carry an Extent instead of null. Geometry.GetExtent() also falls back to a client-side CalculateExtent() (overridden by Polygon/Polyline) when neither the cached value nor the JS component supplies one. Adds extent assertions to TestUnionWithParamsArray and a GeometryExtentTests unit test for the calculation fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.8 to 7.6.3.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.6.3/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.5.8...protobufjs-v7.6.3)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.6.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Addresses PR review: the extent computed by CalculateExtentFromPaths (C#) and calculateGeometryExtent (geometry.ts) only carried x/y. For Z/M-enabled geometries it now also tracks zmin/zmax and mmin/mmax (z at coord index 2 when hasZ; m at index 3 when hasZ, else 2), matching geometry.extent for 3D/M results. Adds Z (polygon) and M (polyline) regression tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Per review: rather than calculating the bounding box in C# (CalculateExtent/CalculateExtentFromPaths) or by hand in TypeScript, buildDotNetGeometry now obtains the extent from ArcGIS. When an operator result (e.g. unionOperator) doesn't expose a cached .extent, it rebuilds a typed ArcGIS geometry via buildJsGeometry so the SDK recomputes it (including Z/M bounds). Reverts the C# extent calculation and its Polygon/Polyline overrides, and removes the now-obsolete C# GeometryExtentTests (the calculation is JS-only; covered by GeometryExtentSerializationTests and the browser TestUnion assertions).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restore SnappingOptions runtime setters (4.5.x regression)
…aptic.GeoBlazor.Core/lodash-es-4.18.1

Bump lodash-es from 4.17.22 to 4.18.1 in /src/dymaptic.GeoBlazor.Core
…aptic.GeoBlazor.Core/flatted-3.4.2

Bump flatted from 3.3.3 to 3.4.2 in /src/dymaptic.GeoBlazor.Core
…aptic.GeoBlazor.Core/multi-513448995a

Bump minimatch, eslint, eslint-plugin-sonarjs and typescript-eslint in /src/dymaptic.GeoBlazor.Core
…aptic.GeoBlazor.Core/esbuild-0.28.1

Bump esbuild from 0.27.1 to 0.28.1 in /src/dymaptic.GeoBlazor.Core
…aptic.GeoBlazor.Core/protobufjs-7.6.3

Bump protobufjs from 7.5.8 to 7.6.3 in /src/dymaptic.GeoBlazor.Core
@TimPurdum TimPurdum self-assigned this Jun 19, 2026
@TimPurdum TimPurdum merged commit ffa2133 into main Jun 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants