Skip to content

SDK refresh: ObjectModel 11.118.421 + .NET 10 (v3.0.0)#5

Merged
OrFrederick merged 6 commits into
mainfrom
sdk-refresh-om11-net10
Jun 17, 2026
Merged

SDK refresh: ObjectModel 11.118.421 + .NET 10 (v3.0.0)#5
OrFrederick merged 6 commits into
mainfrom
sdk-refresh-om11-net10

Conversation

@OrFrederick

Copy link
Copy Markdown
Contributor

Summary

Major SDK refresh ahead of consumer migration. Bumps the generated Geotab ObjectModel to the newest stable and retargets the CaroKann type generator to current-LTS .NET.

  • Retarget CaroKann net6.0net10.0
  • Geotab.Checkmate.ObjectModel 10.0.0-preview111.118.421
  • Reinforced.Typings 1.6.11.6.7
  • Regenerated all src/types/** from the new ObjectModel
  • publish.yaml CI now installs .NET 10

Semver: 3.0.0 (breaking)

20 public type exports removed (absent from OM 11) + ~24 property/type changes on surviving interfaces. Full list in CHANGELOG.md.

Generator fixes (2)

  • Drop OM11 explicit-interface members (dotted names, invalid TS): .WithAllProperties().WithProperties(p => !p.Name.Contains('.'))
  • Resolve a barrel name collision (Engine FaultState vs new StoreForward FaultState): WriteIndex() now emits aliased re-exports → StoreForwardFaultState

Verification

  • tsc --noEmit clean under TS 4.7 strict
  • 37/37 tests passing
  • pnpm build succeeds; generator output deterministic

Notes

  • Device.licensePlate intentionally NOT added (not a property of the base Device entity).
  • Deferred follow-ups: WriteIndex fail-loud guard for latent multi-export drop; deprecated GH Actions bumps (codecov@v4 token caution).

Merging to main triggers publish.yaml → publishes @fairfleet/geotab@3.0.0 to npm + tags.

Also fix CaroKann to filter out explicit interface implementation members
(property names containing '.') which the new OM introduced on InspectionLog
and would otherwise generate invalid TypeScript.
OM11.118.421 added StoreForward/FaultState which clashes with
Checkmate/ObjectModel/Engine/FaultState in the index.ts barrel.
TS 4.7 rejects ambiguous `export *` when two modules share a name.

Fix WriteIndex() in Program.cs to detect export-name collisions via
regex, then emit explicit aliased re-exports for conflicting paths
(StoreForward/FaultState → StoreForwardFaultState). The Engine
FaultState keeps its original name.

Re-run build:types to produce the corrected index.ts; also commits
the docs/ regeneration that accompanied the full build step.
@OrFrederick OrFrederick merged commit 61c913c into main Jun 17, 2026
1 check passed
@OrFrederick OrFrederick deleted the sdk-refresh-om11-net10 branch June 17, 2026 20:31
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.

1 participant