The @miakapp npm scope is now owned by the project, so the names four packages already use internally can become real. Recording the decision here before the release workflow starts publishing anything.
What exists today
| Package |
Where |
npm state |
miakapi |
MiakAPI |
published, latest = 3.0.31; version 4 unpublished |
node-red-contrib-miakapi |
node-red-contrib-MiakAPI |
published, 3.0.31, depends on miakapi@^3.0.31 |
@miakapp/coordinator-contract |
Miakapp-V3 |
private: true, 0.0.0 |
@miakapp/control-plane-emulator |
Miakapp-V3 |
private: true, 0.0.0 |
@miakapp/component-runtime-contract |
Miakapp-V3 |
private: true, 0.0.0 |
@miakapp/synthetic-home-conformance |
Miakapp-V3 |
private: true, 0.0.0 |
Recommendation
Keep the SDK on miakapi, unscoped. It carries the version 3 history, node-red-contrib-miakapi already depends on that name, and bun add miakapi@next is what the README and the migration guide tell people to run. Version 4 is a major bump of an existing package, not a new one.
Use @miakapp/* for everything that is not the SDK — the contracts, the conformance corpus, the emulator. Those names are already written in their package.json files and only ever have to be resolvable, not memorable.
Nothing forces this now: all four scoped packages are private: true and no @miakapp/* name is reachable on the registry. The decision only has to be made before the first one is unpublished-from-private.
If the SDK should move to the scope instead
@miakapp/miakapi (or @miakapp/sdk) would mean publishing miakapi@4 as a deprecation stub pointing at the new name, updating the README, the migration guide, and node-red-contrib-miakapi. Worth doing only if the unscoped name is a problem in itself.
The
@miakappnpm scope is now owned by the project, so the names four packages already use internally can become real. Recording the decision here before the release workflow starts publishing anything.What exists today
miakapilatest=3.0.31; version 4 unpublishednode-red-contrib-miakapi3.0.31, depends onmiakapi@^3.0.31@miakapp/coordinator-contractprivate: true,0.0.0@miakapp/control-plane-emulatorprivate: true,0.0.0@miakapp/component-runtime-contractprivate: true,0.0.0@miakapp/synthetic-home-conformanceprivate: true,0.0.0Recommendation
Keep the SDK on
miakapi, unscoped. It carries the version 3 history,node-red-contrib-miakapialready depends on that name, andbun add miakapi@nextis what the README and the migration guide tell people to run. Version 4 is a major bump of an existing package, not a new one.Use
@miakapp/*for everything that is not the SDK — the contracts, the conformance corpus, the emulator. Those names are already written in theirpackage.jsonfiles and only ever have to be resolvable, not memorable.Nothing forces this now: all four scoped packages are
private: trueand no@miakapp/*name is reachable on the registry. The decision only has to be made before the first one is unpublished-from-private.If the SDK should move to the scope instead
@miakapp/miakapi(or@miakapp/sdk) would mean publishingmiakapi@4as a deprecation stub pointing at the new name, updating the README, the migration guide, andnode-red-contrib-miakapi. Worth doing only if the unscoped name is a problem in itself.