chore/deps-prune changes the install contract of the published package and should ship as 2.10.0 (or a canary first via npm run canary), with a note in the changelog/README.
Root package.json on the branch:
aws-cdk-lib moved from dependencies to peerDependencies (^2.224.0, the floor for Runtime.NODEJS_24_X). constructs added to peerDependencies (^10.0.0). Both stay in devDependencies (^2.268.0, ^10.8.1) for the build. dist/client.js requires both at runtime, so constructs being devDep-only was wrong, and aws-cdk-lib in dependencies risked a nested second copy in consumers (the "construct is not from this aws-cdk-lib" failure).
@hellocoop/definitions moved to dependencies (dist/client.d.ts imports Scope/ProviderHint from it).
@aws-sdk/client-lambda moved to devDependencies (dist/client.js does not use it; it exists so protocol/ typechecks).
Consumer impact: consumers on aws-cdk-lib < 2.224 now get ERESOLVE at install instead of a nested duplicate. Verified by installing the packed tarball into a fresh project on npm 11: peers auto-install, exactly one aws-cdk-lib in node_modules, synth works.
Also in this release: Lambda runtime NODEJS_22_X → NODEJS_24_X in src/client.ts (guard message now says aws-cdk-lib 2.224.0 or later; the guard itself is dead under the peer floor). cdk-sample still synthesizes nodejs22.x because it depends on the published 2.9.0; it flips when 2.10 is out. Root engines.node was kept at >=22 (Node 22 can still run the construct at synth time); move to >=24 if the floor should match the runtime.
Found during the Node 24 / dependency upgrade, 2026-09-06 (see chore/deps-prune branch)
chore/deps-prunechanges the install contract of the published package and should ship as 2.10.0 (or a canary first vianpm run canary), with a note in the changelog/README.Root
package.jsonon the branch:aws-cdk-libmoved fromdependenciestopeerDependencies(^2.224.0, the floor forRuntime.NODEJS_24_X).constructsadded topeerDependencies(^10.0.0). Both stay indevDependencies(^2.268.0,^10.8.1) for the build.dist/client.jsrequires both at runtime, soconstructsbeing devDep-only was wrong, andaws-cdk-libindependenciesrisked a nested second copy in consumers (the "construct is not from this aws-cdk-lib" failure).@hellocoop/definitionsmoved todependencies(dist/client.d.tsimportsScope/ProviderHintfrom it).@aws-sdk/client-lambdamoved todevDependencies(dist/client.jsdoes not use it; it exists soprotocol/typechecks).Consumer impact: consumers on aws-cdk-lib < 2.224 now get
ERESOLVEat install instead of a nested duplicate. Verified by installing the packed tarball into a fresh project on npm 11: peers auto-install, exactly oneaws-cdk-libinnode_modules, synth works.Also in this release: Lambda runtime
NODEJS_22_X→NODEJS_24_Xinsrc/client.ts(guard message now says aws-cdk-lib 2.224.0 or later; the guard itself is dead under the peer floor).cdk-samplestill synthesizesnodejs22.xbecause it depends on the published 2.9.0; it flips when 2.10 is out. Rootengines.nodewas kept at>=22(Node 22 can still run the construct at synth time); move to>=24if the floor should match the runtime.Found during the Node 24 / dependency upgrade, 2026-09-06 (see
chore/deps-prunebranch)