Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThe package now publishes dedicated ChangesCode-generation pipeline
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
* Moving Documentation and Integration to dedicated entrypoints. * Readme: fix imports.
* feat: composite generator for Integration. * fix spacing. * Updating tests. * fix: indentation. * fix: mv ids.
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
zod-sockets/src/typescript-api.ts (1)
54-58: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueStale
@internaltag on a now-public export.
makeUnionis exported and consumed byzts.ts; the@internalmarker will mislead docs/API-extraction tooling that strips internal symbols.♻️ Proposed tweak
/** - * `@internal` * ensures distinct union (unique primitives) * */ export const makeUnion = (entries: ts.TypeNode[]) => {🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@zod-sockets/src/typescript-api.ts` around lines 54 - 58, The JSDoc for the public makeUnion export incorrectly marks it as internal. Remove the `@internal` tag from makeUnion while preserving its existing description and implementation.zod-sockets/package.json (1)
39-42: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value
"./dist/*"exposes the whole build output as public API.With dedicated
./integrationand./documentationsubpaths added, the wildcard makes every internal chunk deep-importable and semver-relevant. Consider dropping it unless deep imports are intentionally supported.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@zod-sockets/package.json` around lines 39 - 42, Remove the "./dist/*" wildcard export from the package exports configuration, while preserving the explicit "./integration" and "./documentation" subpaths. Do not expose internal build chunks as public deep-importable API unless they have dedicated export entries.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/node.js.yml:
- Line 21: Update the Node.js version matrix to remove the 22.19.0 and 22.x
entries, leaving Node 24.11.0, 24.x, 26.0.0, and 26.x as the supported CI
versions; do not retain Node 22 as a gating check.
---
Nitpick comments:
In `@zod-sockets/package.json`:
- Around line 39-42: Remove the "./dist/*" wildcard export from the package
exports configuration, while preserving the explicit "./integration" and
"./documentation" subpaths. Do not expose internal build chunks as public
deep-importable API unless they have dedicated export entries.
In `@zod-sockets/src/typescript-api.ts`:
- Around line 54-58: The JSDoc for the public makeUnion export incorrectly marks
it as internal. Remove the `@internal` tag from makeUnion while preserving its
existing description and implementation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 9b456b22-c9d4-4b94-b370-a36176957b13
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlzod-sockets/src/__snapshots__/index.spec.ts.snapis excluded by!**/*.snapzod-sockets/src/__snapshots__/integration.spec.ts.snapis excluded by!**/*.snap
📒 Files selected for processing (21)
.github/workflows/node.js.yml.pnpmfile.mjsREADME.mdSECURITY.mdcompat-test/express-zod-api.tscompat-test/package.jsonexample/example-client.tsexample/generate-client.tsexample/generate-documentation.tszod-sockets/package.jsonzod-sockets/src/attach.spec.tszod-sockets/src/attach.tszod-sockets/src/index.tszod-sockets/src/integration.spec.tszod-sockets/src/integration.tszod-sockets/src/startup-logo.tszod-sockets/src/typescript-api.tszod-sockets/src/zts-helpers.tszod-sockets/src/zts.spec.tszod-sockets/src/zts.tszod-sockets/tsdown.config.ts
💤 Files with no reviewable changes (3)
- zod-sockets/src/index.ts
- .pnpmfile.mjs
- zod-sockets/src/zts-helpers.ts
There was a problem hiding this comment.
Reviewed changes — a v7 major version bump spanning 15 commits: entrypoint splitting, typescript import consolidation, composite code generation in Integration, and attachSockets return type change.
- Dedicated entrypoints —
IntegrationandDocumentationare now imported fromzod-sockets/integrationandzod-sockets/documentationrespectively, removed from the barrel export.tsdownconfig updated to produce separate bundles. - Static
typescriptimport —TypescriptAPIclass removed;ts,f, and helper functions exported directly fromtypescript-api.tswith a staticimport ts from "typescript".Integrationconstructor no longer accepts atypescriptparameter, andIntegration.create()is removed. - Composite generator —
Integrationnow generates TypeScript code by mixing raw template strings withts.factoryAST nodes, stored asArray<string | function>instead ofts.Node[]. attachSocketsreturns contexts — returnsRecord<namespace, IndependentContext>instead ofServer, fulfilling discussion #801.- Infrastructure — Node 24 minimum bumped to 24.11.0;
.pnpmfile.mjsremoved (obsolete engine hack); startup logo simplified (coloring hardcoded,ramdadependency removed from logo);express-zod-apicompat test updated to beta 5; v5 marked unsupported inSECURITY.md; lockfile bumpedrolldown-plugin-dtsandtsdownengines to>=24.11.0.
ℹ️ typescript is now a hard transitive dependency of the integration entrypoint
typescript-api.ts does import ts from "typescript", which is bundled into zod-sockets/integration. The peerDependenciesMeta still marks typescript as optional: true. Any user who imports zod-sockets/integration without typescript installed will hit a runtime crash with no install-time warning.
The main entrypoint (zod-sockets) does not transitively import typescript, so removing the optional flag would cause a harmless peer-dep warning for users who only use the core — which is the standard npm pattern for packages with optional feature-based entrypoints.
Technical details
# `typescript` peerDependenciesMeta is stale
## Affected sites
- `zod-sockets/package.json`:62-64 — `"peerDependenciesMeta": { "typescript": { "optional": true } }` should be removed or `typescript` should be moved to `dependencies`.
## Required outcome
- Remove `"typescript"` from `peerDependenciesMeta` so `typescript` becomes a non-optional peer dependency, or move `typescript` to `dependencies`.
## Suggested approach
Remove the `peerDependenciesMeta.typescript` entry:
```json
"peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
}
```
This is the minimal change — the peer warning on the main entrypoint is tolerable and standard practice.DeepSeek Pro (free via Pullfrog for OSS) | 𝕏

https://www.hrc.org/news/remembering-tortuguita-indigenous-queer-and-non-binary-environmental-activist-and-forest-defender
Manuel Esteban Páez Terán, affectionately known as "Tortuguita" ("Little Turtle"), was a Venezuelan-American non-binary environmental activist who identified as non-binary. Friends remembered Tortuguita as a gentle, thoughtful person who believed that protecting forests and caring for communities went hand in hand. They became involved in the movement opposing the construction of Atlanta's planned Public Safety Training Center, known by critics as "Cop City," arguing that the project would destroy valuable forest land and harm nearby neighborhoods.
On January 18, 2023, Tortuguita was shot and killed during a police operation to clear the protest encampment. Authorities stated that an activist fired first, prompting officers to return fire. Family members, supporters, and independent experts have disputed that account, citing forensic evidence and calling for further investigation. The circumstances of Tortuguita's death remain the subject of public debate and legal proceedings.
To many environmental and social justice advocates, Tortuguita's legacy lives on through their commitment to peaceful activism, ecological stewardship, and the belief that ordinary people can work together to protect the places they call home.
Summary by CodeRabbit
New Features
dist/*exports).attachSocketsnow returns per-namespace typed contexts.Breaking Changes
Integrationno longer requires a TypeScript instance or the async factory; it’s constructed directly.IntegrationandDocumentationare no longer exported from the main package entry point.attachSocketsreturn value changed from the attached server to the contexts map.Documentation
Style