This repository contains multiple implementations of the same mobility ID domain:
scala/: original Scala implementation (sbt + specs2)java/: Java 21 port (mobilityid4j, Gradle)go/: Go port (mobilityid.juherr.dev/go)php/: PHP port (juherr/mobilityid)ts/: TypeScript port (@juherr/mobilityid, pnpm + Vitest)
cd scala
sbt testRun a single Scala suite:
cd scala
sbt "core/testOnly com.thenewmotion.mobilityid.ContractIdSpec"cd java
./gradlew testRun a single Java suite:
cd java
./gradlew test --tests "*ContractIdTest"cd ts
pnpm install
pnpm checkRun a single TypeScript test pattern:
cd ts
pnpm test -- ContractId- Scala docs and original usage examples:
scala/README.md - Java-specific docs and design choices:
java/README.md - Go-specific docs and design choices:
go/README.md - PHP-specific docs and design choices:
php/README.md - TypeScript-specific docs and design choices:
ts/README.md
- Renovate manages GitHub Actions, Gradle, npm, sbt/Scala, and
mise.tomltool versions (.github/renovate.json). mise.tomluses simplified version formats: major.minor for sbt/gradle (e.g.,1.12,8.9), major only for Java/Node (e.g.,21,24). SeeAGENTS.mdfor configuration details.- CI validates Gradle Wrapper integrity on every run (
gradle/actions/wrapper-validation). - Gradle distribution integrity is pinned with
distributionSha256Suminjava/gradle/wrapper/gradle-wrapper.properties. - Pull requests run a dependency review gate (
actions/dependency-review-action) via.github/workflows/ci.yml. - OWASP dependency scanning runs in
.github/workflows/security.yml.
Run from java/:
./gradlew check
./gradlew javadocJar sourcesJar
./gradlew publishToMavenLocalmobilityid4j publishing metadata/signing is configured for Maven Central Portal workflows.
- Global tags
vX.Y.Ztrigger the release pipeline (.github/workflows/release.yml). - The Java publication uses the tag version and publishes
mobilityid4jto Maven Central Portal. - The TypeScript publication uses the same tag version and publishes
@juherr/mobilityidto npm.
- Repository-level license:
LICENSE - Original Scala license file preserved at:
scala/LICENSE
Many thanks to the original Mobility ID Utils authors and contributors at The New Motion (now Shell Recharge Solutions EU) for creating and open-sourcing the Scala implementation that this repository builds upon.