-
Notifications
You must be signed in to change notification settings - Fork 557
[SDK] Update zod dependency to 3.25.67 #7451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
🦋 Changeset detectedLatest commit: 61508b5 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
WalkthroughThis update modifies the Changes
Sequence Diagram(s)No sequence diagram generated as the changes are limited to dependency version updates. Possibly related PRs
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
📜 Recent review detailsConfiguration used: CodeRabbit UI ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
🚧 Files skipped from review as they are similar to previous changes (7)
⏰ Context from checks skipped due to timeout of 90000ms (8)
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.changeset/fluffy-books-hammer.md (1)
1-5
: Expand the changeset descriptionThe entry is too terse for consumers scanning the changelog.
Consider explicitly noting: “bumpzod
to 3.25.67 and fixexports
map ordering”.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yaml
is excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (2)
.changeset/fluffy-books-hammer.md
(1 hunks)packages/thirdweb/package.json
(2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`packages/thirdweb/*`: Every public symbol in the SDK must have comprehensive TS...
packages/thirdweb/*
: Every public symbol in the SDK must have comprehensive TSDoc with at least one @example block that compiles and custom annotation tags (@beta, @internal, @experimental).
Export everything via the exports/ directory, grouped by feature.
Place tests alongside code: foo.ts ↔ foo.test.ts.
Use real function invocations with stub data in tests; avoid brittle mocks.
Use Mock Service Worker (MSW) for fetch/HTTP call interception in tests.
Keep tests deterministic and side-effect free.
📄 Source: CodeRabbit Inference Engine (CLAUDE.md)
List of files the instruction was applied to:
packages/thirdweb/package.json
🧠 Learnings (3)
📓 Common learnings
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: De-duplicate dependencies across packages through pnpm workspace hoisting.
Learnt from: MananTank
PR: thirdweb-dev/js#7332
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/nft/overview/nft-drop-claim.tsx:82-90
Timestamp: 2025-06-13T13:03:41.732Z
Learning: The thirdweb `contract` object is serializable and can safely be used in contexts (e.g., React-Query keys) that require serializable values.
Learnt from: MananTank
PR: thirdweb-dev/js#7356
File: apps/nebula/src/app/not-found.tsx:1-1
Timestamp: 2025-06-17T18:30:52.976Z
Learning: In the thirdweb/js project, the React namespace is available for type annotations (like React.FC) without needing to explicitly import React. This is project-specific configuration that differs from typical TypeScript/React setups.
.changeset/fluffy-books-hammer.md (2)
Learnt from: MananTank
PR: thirdweb-dev/js#7356
File: apps/nebula/src/app/not-found.tsx:1-1
Timestamp: 2025-06-17T18:30:52.976Z
Learning: In the thirdweb/js project, the React namespace is available for type annotations (like React.FC) without needing to explicitly import React. This is project-specific configuration that differs from typical TypeScript/React setups.
Learnt from: MananTank
PR: thirdweb-dev/js#7298
File: apps/dashboard/src/app/nebula-app/move-funds/move-funds.tsx:424-424
Timestamp: 2025-06-06T23:46:08.795Z
Learning: The thirdweb project has an ESLint rule that restricts direct usage of `defineChain`. When it's necessary to use `defineChain` directly, it's acceptable to disable the rule with `// eslint-disable-next-line no-restricted-syntax`.
packages/thirdweb/package.json (8)
Learnt from: gregfromstl
PR: thirdweb-dev/js#7450
File: packages/thirdweb/src/bridge/Webhook.ts:57-81
Timestamp: 2025-06-26T19:46:04.024Z
Learning: In the onramp webhook schema (`packages/thirdweb/src/bridge/Webhook.ts`), the `currencyAmount` field is intentionally typed as `z.number()` while other amount fields use `z.string()` because `currencyAmount` represents fiat currency amounts in decimals (like $10.50), whereas other amount fields represent token amounts in wei (very large integers that benefit from bigint representation). The different naming convention (`currencyAmount` vs `amount`) reflects this intentional distinction.
Learnt from: MananTank
PR: thirdweb-dev/js#7356
File: apps/nebula/src/app/not-found.tsx:1-1
Timestamp: 2025-06-17T18:30:52.976Z
Learning: In the thirdweb/js project, the React namespace is available for type annotations (like React.FC) without needing to explicitly import React. This is project-specific configuration that differs from typical TypeScript/React setups.
Learnt from: MananTank
PR: thirdweb-dev/js#7332
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/nft/overview/nft-drop-claim.tsx:82-90
Timestamp: 2025-06-13T13:03:41.732Z
Learning: The thirdweb `contract` object is serializable and can safely be used in contexts (e.g., React-Query keys) that require serializable values.
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: For multi-platform support, provide platform-specific exports and adapters (e.g., React Native, Node.js, Wagmi, Ethers).
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-06-23T13:49:58.951Z
Learning: Prefix server-only files with 'import "server-only";' to prevent them from being included in the client bundle.
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: Re-use shared types from @/types or local types.ts barrels.
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: Group feature-specific components under feature/components/* with a barrel index.ts.
Learnt from: jnsdls
PR: thirdweb-dev/js#7363
File: apps/dashboard/src/app/(app)/layout.tsx:63-74
Timestamp: 2025-06-18T02:01:06.006Z
Learning: In Next.js applications, instrumentation files (instrumentation.ts or instrumentation-client.ts) placed in the src/ directory are automatically handled by the framework and included in the client/server bundles without requiring manual imports. The framework injects these files as part of the build process.
⏰ Context from checks skipped due to timeout of 90000ms (8)
- GitHub Check: E2E Tests (pnpm, esbuild)
- GitHub Check: Size
- GitHub Check: E2E Tests (pnpm, webpack)
- GitHub Check: E2E Tests (pnpm, vite)
- GitHub Check: Unit Tests
- GitHub Check: Build Packages
- GitHub Check: Lint Packages
- GitHub Check: Analyze (javascript)
🔇 Additional comments (1)
packages/thirdweb/package.json (1)
42-42
: Check for workspace-widezod
version consistencyGood to see the patch bump.
However, several other packages in this mono-repo also depend onzod
. Please make sure they are upgraded in lock-step, otherwise you’ll get duplicate copies in the store (and runtime type mismatches).#!/bin/bash # Find every package.json that still references an older zod. rg -l '"zod":' --glob='**/package.json' \ | xargs jq -r '.name + " -> " + (.dependencies.zod // .devDependencies.zod // "")' \ | grep -v '3.25.67' || true
packages/thirdweb/package.json
Outdated
"exports": { | ||
".": { | ||
"types": "./dist/types/exports/thirdweb.d.ts", | ||
"default": "./dist/cjs/exports/thirdweb.js", | ||
"import": "./dist/esm/exports/thirdweb.js", | ||
"default": "./dist/cjs/exports/thirdweb.js" | ||
"types": "./dist/types/exports/thirdweb.d.ts" | ||
}, | ||
"./adapters/*": { | ||
"types": "./dist/types/exports/adapters/*.d.ts", | ||
"default": "./dist/cjs/exports/adapters/*.js", | ||
"import": "./dist/esm/exports/adapters/*.js", | ||
"default": "./dist/cjs/exports/adapters/*.js" | ||
"types": "./dist/types/exports/adapters/*.d.ts" | ||
}, | ||
"./ai": { | ||
"types": "./dist/types/exports/ai.d.ts", | ||
"default": "./dist/cjs/exports/ai.js", | ||
"import": "./dist/esm/exports/ai.js", | ||
"default": "./dist/cjs/exports/ai.js" | ||
"types": "./dist/types/exports/ai.d.ts" | ||
}, | ||
"./auth": { | ||
"types": "./dist/types/exports/auth.d.ts", | ||
"default": "./dist/cjs/exports/auth.js", | ||
"import": "./dist/esm/exports/auth.js", | ||
"default": "./dist/cjs/exports/auth.js" | ||
"types": "./dist/types/exports/auth.d.ts" | ||
}, | ||
"./bridge": { | ||
"types": "./dist/types/exports/bridge.d.ts", | ||
"default": "./dist/cjs/exports/bridge.js", | ||
"import": "./dist/esm/exports/bridge.js", | ||
"default": "./dist/cjs/exports/bridge.js" | ||
"types": "./dist/types/exports/bridge.d.ts" | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exports
condition order is now incorrect – will force ESM imports to load the CJS build
In Node’s resolution algorithm the conditions object is traversed in the order they appear.
Placing "default"
before "import"
means that:
- For an ESM
import
(conditions
set contains"import"
and"default"
), - Node hits
"default"
first and immediately resolves to./dist/cjs/...
(CommonJS), - Resulting in the wrong format being loaded (or even a runtime syntax error under
"type": "module"
).
"default"
must remain the fallback, i.e. the last key.
Minimal fix pattern (apply to every sub-export):
- "default": "./dist/cjs/exports/*.js",
- "import": "./dist/esm/exports/*.js",
+ "import": "./dist/esm/exports/*.js",
+ "default": "./dist/cjs/exports/*.js",
I recommend running a small script to auto-reorder across the file, or revert the earlier ordering that had been working.
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In packages/thirdweb/package.json between lines 98 and 123, the "exports" field
has the "default" condition listed before the "import" condition, causing
Node.js to resolve ESM imports to the CommonJS build incorrectly. To fix this,
reorder each export entry so that the "import" condition comes before the
"default" condition, ensuring "default" remains the fallback and is listed last.
Apply this change consistently to all sub-exports in the "exports" object.
size-limit report 📦
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #7451 +/- ##
==========================================
- Coverage 51.92% 51.90% -0.02%
==========================================
Files 947 947
Lines 63875 63932 +57
Branches 4214 4209 -5
==========================================
+ Hits 33166 33186 +20
- Misses 30603 30640 +37
Partials 106 106
🚀 New features to boost your workflow:
|
15f14d3
to
acc4bd1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
apps/nebula/package.json (1)
1-85
: Large whitespace-only diff — consider letting the formatter run insteadMost lines in this file are shown as changed solely because indentation switched from 2 spaces to tabs. It obscures the real dependency tweak and bloats the diff history.
Unless the repo’s formatter config intentionally changed to tabs, revert whitespace-only changes and rely on the formatter/CI to keep style consistent.
apps/playground-web/package.json (1)
1-68
: Whitespace-only churnThe switch to tab indentation accounts for the bulk of the diff. If this was unintentional, re-run the project formatter with the repo standard settings before merging.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yaml
is excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (7)
.changeset/fluffy-books-hammer.md
(1 hunks)apps/dashboard/package.json
(1 hunks)apps/nebula/package.json
(1 hunks)apps/playground-web/package.json
(1 hunks)apps/wallet-ui/package.json
(1 hunks)packages/service-utils/package.json
(2 hunks)packages/thirdweb/package.json
(2 hunks)
✅ Files skipped from review due to trivial changes (3)
- apps/dashboard/package.json
- apps/wallet-ui/package.json
- packages/service-utils/package.json
🚧 Files skipped from review as they are similar to previous changes (2)
- .changeset/fluffy-books-hammer.md
- packages/thirdweb/package.json
🧰 Additional context used
📓 Path-based instructions (2)
`apps/playground-web/*`: The playground-web app is an interactive SDK testing environment.
apps/playground-web/*
: The playground-web app is an interactive SDK testing environment.
📄 Source: CodeRabbit Inference Engine (CLAUDE.md)
List of files the instruction was applied to:
apps/playground-web/package.json
`apps/nebula/*`: The nebula app is for account abstraction and smart wallet management.
apps/nebula/*
: The nebula app is for account abstraction and smart wallet management.
📄 Source: CodeRabbit Inference Engine (CLAUDE.md)
List of files the instruction was applied to:
apps/nebula/package.json
🧠 Learnings (3)
📓 Common learnings
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: De-duplicate dependencies across packages through pnpm workspace hoisting.
Learnt from: MananTank
PR: thirdweb-dev/js#7356
File: apps/nebula/src/app/not-found.tsx:1-1
Timestamp: 2025-06-17T18:30:52.976Z
Learning: In the thirdweb/js project, the React namespace is available for type annotations (like React.FC) without needing to explicitly import React. This is project-specific configuration that differs from typical TypeScript/React setups.
Learnt from: gregfromstl
PR: thirdweb-dev/js#7450
File: packages/thirdweb/src/bridge/Webhook.ts:57-81
Timestamp: 2025-06-26T19:46:04.024Z
Learning: In the onramp webhook schema (`packages/thirdweb/src/bridge/Webhook.ts`), the `currencyAmount` field is intentionally typed as `z.number()` while other amount fields use `z.string()` because `currencyAmount` represents fiat currency amounts in decimals (like $10.50), whereas other amount fields represent token amounts in wei (very large integers that benefit from bigint representation). The different naming convention (`currencyAmount` vs `amount`) reflects this intentional distinction.
apps/playground-web/package.json (4)
Learnt from: jnsdls
PR: thirdweb-dev/js#7363
File: apps/dashboard/src/app/(app)/layout.tsx:63-74
Timestamp: 2025-06-18T02:01:06.006Z
Learning: In Next.js applications, instrumentation files (instrumentation.ts or instrumentation-client.ts) placed in the src/ directory are automatically handled by the framework and included in the client/server bundles without requiring manual imports. The framework injects these files as part of the build process.
Learnt from: MananTank
PR: thirdweb-dev/js#7356
File: apps/nebula/src/app/not-found.tsx:1-1
Timestamp: 2025-06-17T18:30:52.976Z
Learning: In the thirdweb/js project, the React namespace is available for type annotations (like React.FC) without needing to explicitly import React. This is project-specific configuration that differs from typical TypeScript/React setups.
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: De-duplicate dependencies across packages through pnpm workspace hoisting.
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: For multi-platform support, provide platform-specific exports and adapters (e.g., React Native, Node.js, Wagmi, Ethers).
apps/nebula/package.json (3)
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: De-duplicate dependencies across packages through pnpm workspace hoisting.
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-25T02:13:08.257Z
Learning: Use pnpm as the package manager and Turborepo for monorepo management.
Learnt from: jnsdls
PR: thirdweb-dev/js#7363
File: apps/dashboard/src/app/(app)/layout.tsx:63-74
Timestamp: 2025-06-18T02:01:06.006Z
Learning: In Next.js applications, instrumentation files (instrumentation.ts or instrumentation-client.ts) placed in the src/ directory are automatically handled by the framework and included in the client/server bundles without requiring manual imports. The framework injects these files as part of the build process.
⏰ Context from checks skipped due to timeout of 90000ms (8)
- GitHub Check: E2E Tests (pnpm, esbuild)
- GitHub Check: Lint Packages
- GitHub Check: Unit Tests
- GitHub Check: E2E Tests (pnpm, vite)
- GitHub Check: Size
- GitHub Check: E2E Tests (pnpm, webpack)
- GitHub Check: Build Packages
- GitHub Check: Analyze (javascript)
🔇 Additional comments (2)
apps/nebula/package.json (1)
39-41
: Zod patch-level bump looks safe, but double-check for monorepo deduplicationNothing functionally wrong with moving from
3.25.62
→3.25.67
; it is a patch release.
Two quick sanity checks before merge:
- Run
pnpm why zod
at the repo root to confirm every workspace package resolves to 3.25.67 so we don’t pull multiple copies.- Skipped lock-file updates often break reproducible CI. If the repo policy still requires committing
pnpm-lock.yaml
, regenerate it (pnpm i --lockfile-only
) and commit in a follow-up.apps/playground-web/package.json (1)
33-36
: Keep zod version in lock-step with the rest of the workspaceSame remark as for
nebula
: verify that all packages now pick 3.25.67 and there is no accidental mix (e.g., a transitive 3.25.62). Running unit / e2e tests that hit zod schemas will surface any behavioural changes.
acc4bd1
to
b1fee58
Compare
b1fee58
to
61508b5
Compare
PR-Codex overview
This PR focuses on updating the
zod
dependency version across multiple packages to3.25.67
and includes a patch forthirdweb
.Detailed summary
zod
from3.25.62
to3.25.67
in:packages/thirdweb/package.json
apps/dashboard/package.json
apps/wallet-ui/package.json
apps/nebula/package.json
apps/playground-web/package.json
packages/service-utils/package.json
pnpm-lock.yaml
thirdweb
in.changeset/fluffy-books-hammer.md
.Summary by CodeRabbit