Dashboard › sentry-api-schema › Session 0f3c5lGlHdbn
0f3c5lGlHdbnaH0pbAdversarially review PR #90 in /home/byk/Code/getsentry/sentry-api-schema against origin/main. Focus on npm optional peer behavior across npm/pnpm/yarn/bun, exports and declaration resolution, root dependency isolation, peer version ranges, tarball contents, bundling/externalization, package compatibility, and tests that may give false confidence. Do not edit. Return only concrete findings ordered by severity with file:line references, reproduction/reasoning, and minimal fixes. Explicitly state no findings if none.
No files found
## valibot-validators...origin/valibot-validators 98174fc (HEAD -> valibot-validators, origin/valibot-validators) feat: add Valibot validation schemas
README.md | 31 +++++++++++++++++++++++++++++++ build.mjs | 15 +++++++++------ bun.lock | 11 ++++++++--- package.json | 13 +++++++++++-- test/package.test.ts | 31 +++++++++++++++++++++++++++++++ test/smoke.test.ts | 21 +++++++++++++++++++++ test/typecheck.ts | 11 +++++++++++ 7 files changed, 122 insertions(+), 11 deletions(-) M README.md M build.mjs M bun.lock M package.json A test/package.test.ts M test/smoke.test.ts M test/typecheck.ts
{"author":{"id":"MDQ6VXNlcjEyNjc4MA==","is_bot":false,"login":"BYK","name":"Burak Yigit Kaya"},"baseRefName":"main","baseRefOid":"034df6dfd663de3d17672abfcfea635b569f4adc","body":"## Summary\n\nAdds Valibot runtime schemas while keeping Zod and dependency-free consumers supported through separate package entry points.\n\n- `@sentry/api` remains a zero-runtime-dependency client with pure TypeScript types.\n- `@sentry/api/valibot` exposes generated Valibot 1 schemas.\n- `@sentry/api/zod` now exposes generated Zod 4 schemas and requires Zod 4.4 or later.\n- `valibot` and `zod` are optional peer dependencies, so consumers install neither, either, or both.\n- Validator bundles externalize their own peer and never pull the other validator into an application.\n\n## Usage\n\n```ts\nimport * as v from \"valibot\";\nimport { vGetProjectResponse } from \"@sentry/api/valibot\";\n\nconst project = v.parse(vGetProjectResponse, input);\n```\n\n```ts\nimport { zGetProjectResponse } from ...
diff --git a/README.md b/README.md
index 898dd47..c608264 100644
--- a/README.md
+++ b/README.md
@@ -1,111 +1,142 @@
# @sentry/api
The official, auto-generated TypeScript client for Sentry's public REST API.
[](https://www.npmjs.com/package/@sentry/api)
[](./LICENSE.md)
## Install
```bash
npm install @sentry/api
```
## Usage
Pass `baseUrl` and an auth header to each call:
```ts
import { listYourOrganizations } from "@sentry/api";
const { data, error } = await listYourOrganizations({
baseUrl: "https://sentry.io",
headers: { Authorization: `Bearer ${process.env.SENTRY_AUTH_TOKEN}` },
});
if (error) throw error;
console.log(data);
```
Auth tokens and base URLs (including self-hosted and region URLs) are documented at https://docs.sentry.io/api/auth/.
+## Runtime validation
+
+The root `@sentry/api` entry has no runtime dependencies. ...
/home/byk/Code/getsentry/sentry-api-schema/package.json /home/byk/Code/getsentry/sentry-api-schema/build.mjs /home/byk/Code/getsentry/sentry-api-schema/README.md /home/byk/Code/getsentry/sentry-api-schema/tsconfig.test.json /home/byk/Code/getsentry/sentry-api-schema/tsconfig.json
/home/byk/Code/getsentry/sentry-api-schema/test/typecheck.ts /home/byk/Code/getsentry/sentry-api-schema/test/smoke.test.ts /home/byk/Code/getsentry/sentry-api-schema/test/package.test.ts /home/byk/Code/getsentry/sentry-api-schema/test/normalize-spec.test.ts /home/byk/Code/getsentry/sentry-api-schema/test/browser.test.ts
/home/byk/Code/getsentry/sentry-api-schema/scripts/generate-error-results.mjs /home/byk/Code/getsentry/sentry-api-schema/scripts/generate-pagination.mjs
<path>/home/byk/Code/getsentry/sentry-api-schema/tsconfig.json</path>
<type>file</type>
<content>
1: {
2: "compilerOptions": {
3: "lib": ["ESNext", "DOM"],
4: "target": "ESNext",
5: "module": "ESNext",
6: "moduleDetection": "force",
7: "allowJs": true,
8: "moduleResolution": "bundler",
9: "allowImportingTsExtensions": true,
10: "verbatimModuleSyntax": true,
11: "declaration": true,
12: "emitDeclarationOnly": true,
13: "outDir": "dist",
14: "resolveJsonModule": true,
15: "strict": true,
16: "skipLibCheck": true,
17: "noFallthroughCasesInSwitch": true,
18: "noUncheckedIndexedAccess": true,
19: "noImplicitOverride": true,
20: "esModuleInterop": true,
21: "forceConsistentCasingInFileNames": true,
22: "noUnusedLocals": false,
23: "noUnusedParameters": false,
24: "noPropertyAccessFromIndexSignature": false
25: },
26: "include": ["src/**/*.ts"],
27: "exclude": ["node_modules", "dist"]
28: }
(End ...
<path>/home/byk/Code/getsentry/sentry-api-schema/tsconfig.test.json</path>
<type>file</type>
<content>
1: {
2: "extends": "./tsconfig.json",
3: "compilerOptions": {
4: "noEmit": true,
5: "emitDeclarationOnly": false,
6: "types": ["bun"]
7: },
8: "include": ["src/**/*.ts", "test/**/*.ts"]
9: }
(End of file - total 9 lines)
</content>
<path>/home/byk/Code/getsentry/sentry-api-schema/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "@sentry/api",
3: "version": "0.255.0",
4: "description": "Official auto-generated TypeScript client for the Sentry public REST API",
5: "keywords": [
6: "sentry",
7: "sentry-api",
8: "openapi",
9: "typescript",
10: "api-client"
11: ],
12: "license": "FSL-1.1-Apache-2.0",
13: "type": "module",
14: "module": "dist/index.js",
15: "types": "dist/index.d.ts",
16: "files": [
17: "dist"
18: ],
19: "scripts": {
20: "build": "node build.mjs",
21: "test": "bun test",
22: "typecheck": "tsc -p tsconfig.test.json"
23: },
24: "exports": {
25: ".": {
26: "import": "./dist/index.js",
27: "types": "./dist/index.d.ts"
28: },
29: "./zod": {
30: "import": "./dist/zod.js",
31: "types": "./dist/zod.d.ts"
32: },
33: "./valibot": {
34: "import": "./dist/valibot.js",
35: "types": ...
<path>/home/byk/Code/getsentry/sentry-api-schema/test/package.test.ts</path>
<type>file</type>
<content>
1: import { describe, expect, test } from "bun:test";
2: import packageJson from "../package.json";
3:
4: const readBundle = (name: string) =>
5: Bun.file(new URL(`../dist/${name}.js`, import.meta.url)).text();
6:
7: describe("package entry points", () => {
8: test("keeps validator peers optional", () => {
9: expect(packageJson.peerDependenciesMeta).toEqual({
10: valibot: { optional: true },
11: zod: { optional: true },
12: });
13: });
14:
15: test("keeps the root bundle independent from validators", async () => {
16: const root = await readBundle("index");
17: expect(root).not.toMatch(/from ["']valibot["']/);
18: expect(root).not.toMatch(/from ["']zod["']/);
19: });
20:
21: test("isolates each validator to its own entry point", async () => {
22: const [valibot, zod] = await Promise.all([
23: readBundle("valibot"),
24: ...
No files found
Found 4 matches
/home/byk/Code/getsentry/sentry-api-schema/src/zod.ts:
Line 1: export * from "./zod.gen.ts";
/home/byk/Code/getsentry/sentry-api-schema/src/valibot.ts:
Line 1: export * from "./valibot.gen.ts";
/home/byk/Code/getsentry/sentry-api-schema/src/zod.gen.ts:
Line 3: import { z } from 'zod';
/home/byk/Code/getsentry/sentry-api-schema/src/valibot.gen.ts:
Line 3: import * as v from 'valibot';
11.13.0 ERROR This project is configured to use bun For help, run: pnpm help
No files found
Found 35 matches
/home/byk/Code/getsentry/sentry-api-schema/dist/valibot.d.ts:
Line 1: export * from "./valibot.gen.ts";
/home/byk/Code/getsentry/sentry-api-schema/dist/valibot.gen.d.ts:
Line 1: import * as v from 'valibot';
/home/byk/Code/getsentry/sentry-api-schema/dist/zod.d.ts:
Line 1: export * from "./zod.gen.ts";
/home/byk/Code/getsentry/sentry-api-schema/dist/zod.gen.d.ts:
Line 1: import { z } from 'zod';
/home/byk/Code/getsentry/sentry-api-schema/dist/client.gen.d.ts:
Line 1: import { type ClientOptions, type Config } from './client';
Line 2: import type { ClientOptions as ClientOptions2 } from './types.gen';
/home/byk/Code/getsentry/sentry-api-schema/dist/index.d.ts:
Line 1: export { addOrganizationMember, addOrganizationMemberTeam, addProjectSymbolSource, addProjectTeam, createOrganizationDashboard, createOrganizationDiscoverSavedQuery, createOrganizationExternalUser, createOrganizationForwarding, createOrganizationIssueIntegration, ...
[
{
"id": "@sentry/api@0.255.0",
"name": "@sentry/api",
"version": "0.255.0",
"size": 566932,
"unpackedSize": 5601449,
"shasum": "7b1f0379b2bdf6ce4bb5d1ba32fbf8cabfd311f9",
"integrity": "sha512-FvpbrpgE8Afrjqaa0Q5NeafH0NyqfvJsCFb475grYz5wvV4TUezrKXepHmGZ6gxuboZiOu0zEjWHtXnf/mXz2Q==",
"filename": "sentry-api-0.255.0.tgz",
"files": [
{
"path": "LICENSE.md",
"size": 3780,
"mode": 420
},
{
"path": "README.md",
"size": 6179,
"mode": 420
},
{
"path": "dist/browser-client.d.ts",
"size": 1699,
"mode": 420
},
{
"path": "dist/browser.d.ts",
"size": 37,
"mode": 420
},
{
"path": "dist/browser.js",
"size": 1220,
"mode": 420
},
{
"path": "dist/client.gen.d.ts",
"size": 698,
"mode": 420
},
{
"path": "dist/client/client.gen.d.ts",
...
{
"name": "@sentry/api",
"version": "0.255.0",
"description": "Official auto-generated TypeScript client for the Sentry public REST API",
"keywords": [
"sentry",
"sentry-api",
"openapi",
"typescript",
"api-client"
],
"license": "FSL-1.1-Apache-2.0",
"type": "module",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"build": "node build.mjs",
"test": "bun test",
"typecheck": "tsc -p tsconfig.test.json"
},
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./zod": {
"import": "./dist/zod.js",
"types": "./dist/zod.d.ts"
},
"./browser": {
"import": "./dist/browser.js",
"types": "./dist/browser.d.ts"
}
},
"homepage": "https://docs.sentry.io/api/",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": ...
/home/byk/.volta/bin/npm /home/byk/.volta/bin/pnpm /home/byk/.volta/bin/yarn /home/byk/.volta/bin/bun 11.13.0 1.3.14 /usr/bin/bash: line 1: corepack: command not found
<path>/home/byk/Code/getsentry/sentry-api-schema/dist/valibot.js</path>
<type>file</type>
<content>
1: // src/valibot.gen.ts
2: import * as v from "valibot";
3: var vAutofixPostResponse = v.object({
4: run_id: v.pipe(v.number(), v.integer()),
5: sentry_run_id: v.union([v.string(), v.null()])
6: });
7: var vAutofixStateResponse = v.object({
8: autofix: v.union([v.record(v.string(), v.unknown()), v.null()])
9: });
10: var vBaseDataConditionGroupValidator = v.object({
11: id: v.optional(v.pipe(v.number(), v.integer())),
12: logic_type: v.picklist([
13: "any",
14: "any-short",
15: "all",
16: "none"
17: ]),
18: conditions: v.optional(v.array(v.unknown()))
19: });
20: var vBaseDetectorTypeValidator = v.object({
21: name: v.pipe(v.string(), v.maxLength(200)),
22: type: v.string(),
23: workflow_ids: v.optional(v.array(v.pipe(v.number(), v.integer()))),
24: data_sources: v.optional(v.array(v.unknown())),
25: config: v.optional(v.record(v.string(), ...
<path>/home/byk/Code/getsentry/sentry-api-schema/dist/zod.js</path>
<type>file</type>
<content>
1: // src/zod.gen.ts
2: import { z } from "zod";
3: var zAutofixPostResponse = z.object({
4: run_id: z.int(),
5: sentry_run_id: z.union([
6: z.string(),
7: z.null()
8: ])
9: });
10: var zAutofixStateResponse = z.object({
11: autofix: z.union([
12: z.record(z.string(), z.unknown()),
13: z.null()
14: ])
15: });
16: var zBaseDataConditionGroupValidator = z.object({
17: id: z.optional(z.int()),
18: logic_type: z.enum([
19: "any",
20: "any-short",
21: "all",
22: "none"
23: ]),
24: conditions: z.optional(z.array(z.unknown()))
25: });
26: var zBaseDetectorTypeValidator = z.object({
27: name: z.string().max(200),
28: type: z.string(),
29: workflow_ids: z.optional(z.array(z.int())),
30: data_sources: z.optional(z.array(z.unknown())),
(Showing lines 1-30 of 32151. Use offset=31 to continue.)
</content>
<path>/home/byk/Code/getsentry/sentry-api-schema/dist/valibot.d.ts</path> <type>file</type> <content> 1: export * from "./valibot.gen.ts"; (End of file - total 1 lines) </content>
<path>/home/byk/Code/getsentry/sentry-api-schema/dist/zod.d.ts</path> <type>file</type> <content> 1: export * from "./zod.gen.ts"; (End of file - total 1 lines) </content>
Found 100 matches (more matches available)
/home/byk/Code/getsentry/sentry-api-schema/src/valibot.gen.ts:
Line 8: export const vAutofixPostResponse = v.object({
Line 9: run_id: v.pipe(v.number(), v.integer()),
Line 10: sentry_run_id: v.union([v.string(), v.null()])
Line 16: export const vAutofixStateResponse = v.object({
Line 17: autofix: v.union([v.record(v.string(), v.unknown()), v.null()])
Line 25: export const vBaseDataConditionGroupValidator = v.object({
Line 26: id: v.optional(v.pipe(v.number(), v.integer())),
Line 27: logic_type: v.picklist([
Line 33: conditions: v.optional(v.array(v.unknown()))
Line 41: export const vBaseDetectorTypeValidator = v.object({
Line 42: name: v.pipe(v.string(), v.maxLength(200)),
Line 43: type: v.string(),
Line 44: workflow_ids: v.optional(v.array(v.pipe(v.number(), v.integer()))),
Line 45: data_sources: v.optional(v.array(v.unknown())),
Line 46: config: ...
Found 100 matches (more matches available)
/home/byk/Code/getsentry/sentry-api-schema/src/zod.gen.ts:
Line 8: export const zAutofixPostResponse = z.object({
Line 9: run_id: z.int(),
Line 10: sentry_run_id: z.union([
Line 11: z.string(),
Line 12: z.null()
Line 19: export const zAutofixStateResponse = z.object({
Line 20: autofix: z.union([
Line 21: z.record(z.string(), z.unknown()),
Line 22: z.null()
Line 31: export const zBaseDataConditionGroupValidator = z.object({
Line 32: id: z.optional(z.int()),
Line 33: logic_type: z.enum([
Line 39: conditions: z.optional(z.array(z.unknown()))
Line 47: export const zBaseDetectorTypeValidator = z.object({
Line 48: name: z.string().max(200),
Line 49: type: z.string(),
Line 50: workflow_ids: z.optional(z.array(z.int())),
Line 51: data_sources: z.optional(z.array(z.unknown())),
Line 52: config: ...
pr-1589-cli-recall-contract.base.test.ts
pr-1589-empty-query.stderr
pr-1589-empty-query.stdout
pr-1589-mutation
pr-1589-recall.base.ts
pr-1589-session.stderr
pr-1589-session.stdout
sentry-api-package-test
valibot-pr-body.md
[
{
"id": "@sentry/api@0.255.0",
"name": "@sentry/api",
"version": "0.255.0",
"size": 566932,
"unpackedSize": 5601449,
"shasum": "7b1f0379b2bdf6ce4bb5d1ba32fbf8cabfd311f9",
"integrity": "sha512-FvpbrpgE8Afrjqaa0Q5NeafH0NyqfvJsCFb475grYz5wvV4TUezrKXepHmGZ6gxuboZiOu0zEjWHtXnf/mXz2Q==",
"filename": "sentry-api-0.255.0.tgz",
"files": [
{
"path": "LICENSE.md",
"size": 3780,
"mode": 420
},
{
"path": "README.md",
"size": 6179,
"mode": 420
},
{
"path": "dist/browser-client.d.ts",
"size": 1699,
"mode": 420
},
{
"path": "dist/browser.d.ts",
"size": 37,
"mode": 420
},
{
"path": ...
<path>/tmp/opencode/sentry-api-package-test</path> <type>directory</type> <entries> root/ sentry-api-0.254.1.tgz valibot/ zod/ (4 entries) </entries>
10.28.0 Volta error: Yarn is not available. Use `volta install yarn` to select a default version (see `volta help install` for more info).
{
"name": "valibot",
"description": "The modular and type safe schema library for validating structural data",
"version": "1.4.2",
"license": "MIT",
"author": "Fabian Hiller",
"homepage": "https://valibot.dev",
"repository": {
"type": "git",
"url": "https://github.com/open-circle/valibot"
},
"keywords": [
"modular",
"typescript",
"schema",
"validation",
"parsing",
"bundle-size",
"type-safe",
"runtime"
],
"type": "module",
"main": "./dist/index.mjs",
"types": "./dist/index.d.mts",
"exports": {
".": {
"import": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
}
}
},
"sideEffects": false,
"files": [
"dist"
],
"publishConfig": {
"access": "public"
},
"scripts": {
"play": "tsm ./playground.ts",
"test": "vitest --typecheck",
"coverage": ...
{
"version": "4.4.3",
"exports": {
"./package.json": "./package.json",
".": {
"@zod/source": "./src/index.ts",
"types": "./index.d.cts",
"import": "./index.js",
"require": "./index.cjs"
},
"./mini": {
"@zod/source": "./src/mini/index.ts",
"types": "./mini/index.d.cts",
"import": "./mini/index.js",
"require": "./mini/index.cjs"
},
"./locales": {
"@zod/source": "./src/locales/index.ts",
"types": "./locales/index.d.cts",
"import": "./locales/index.js",
"require": "./locales/index.cjs"
},
"./v3": {
"@zod/source": "./src/v3/index.ts",
"types": "./v3/index.d.cts",
"import": "./v3/index.js",
"require": "./v3/index.cjs"
},
"./v4": {
"@zod/source": "./src/v4/index.ts",
"types": "./v4/index.d.cts",
"import": "./v4/index.js",
"require": "./v4/index.cjs"
},
"./v4-mini": {
"@zod/source": "./src/v4-mini/index.ts",
...
(no output)
Success. Updated the following files: A ../../../../../tmp/opencode/pr90-review/npm-root/package.json A ../../../../../tmp/opencode/pr90-review/npm-root/index.mjs A ../../../../../tmp/opencode/pr90-review/npm-root/index.ts A ../../../../../tmp/opencode/pr90-review/npm-root/tsconfig.json A ../../../../../tmp/opencode/pr90-review/npm-valibot/package.json A ../../../../../tmp/opencode/pr90-review/npm-valibot/index.mjs A ../../../../../tmp/opencode/pr90-review/npm-valibot/index.ts A ../../../../../tmp/opencode/pr90-review/npm-valibot/tsconfig.json A ../../../../../tmp/opencode/pr90-review/npm-zod/package.json A ../../../../../tmp/opencode/pr90-review/npm-zod/index.mjs A ../../../../../tmp/opencode/pr90-review/npm-zod/index.ts A ../../../../../tmp/opencode/pr90-review/npm-zod/tsconfig.json A ../../../../../tmp/opencode/pr90-review/pnpm-root/package.json A ../../../../../tmp/opencode/pr90-review/bun-root/package.json A ../../../../../tmp/opencode/pr90-review/yarn-root/package.json
added 2 packages, and audited 3 packages in 2s
found 0 vulnerabilities
npm-root@ /tmp/opencode/pr90-review/npm-root
├─┬ @sentry/api@0.255.0
│ ├── UNMET OPTIONAL DEPENDENCY valibot@>=1.0.0 <2
│ └── UNMET OPTIONAL DEPENDENCY zod@>=4.4.0 <5
└── typescript@5.9.3
{}
node_modules/@sentry/api/dist/error-results.gen.d.ts(1,37): error TS2834: Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.
node_modules/@sentry/api/dist/error-results.gen.d.ts(2,30): error TS2307: Cannot find module './sdk.gen' or its corresponding type declarations.
node_modules/@sentry/api/dist/error-results.gen.d.ts(3,21659): error TS2307: Cannot find module './types.gen' or its corresponding type declarations.
node_modules/@sentry/api/dist/index.d.ts(1,6209): error TS2307: Cannot find module './sdk.gen' or its corresponding type declarations.
node_modules/@sentry/api/dist/index.d.ts(2,34498): ...
added 3 packages, and audited 4 packages in 3s
1 high severity vulnerability
To address all issues, run:
npm audit fix --force
Run `npm audit` for details.
npm-valibot@ /tmp/opencode/pr90-review/npm-valibot
├─┬ @sentry/api@0.255.0
│ ├── valibot@1.0.0 deduped
│ └── UNMET OPTIONAL DEPENDENCY zod@>=4.4.0 <5
├── typescript@5.9.3
└─┬ valibot@1.0.0
└── typescript@5.9.3 deduped
{ run_id: 1, sentry_run_id: null }
added 3 packages, and audited 4 packages in 3s
1 package is looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm-zod@ /tmp/opencode/pr90-review/npm-zod
├─┬ @sentry/api@0.255.0
│ ├── UNMET OPTIONAL DEPENDENCY valibot@>=1.0.0 <2
│ └── zod@4.4.0 deduped
├── typescript@5.9.3
└── zod@4.4.0
{ run_id: 1, sentry_run_id: null }
Progress: resolved 0, reused 0, downloaded 1, added 0 Packages: +1 + Progress: resolved 1, reused 0, downloaded 1, added 1, done dependencies: + @sentry/api 0.255.0 Done in 1.6s using pnpm v10.28.0 Legend: production dependency, optional only, dev only /tmp/opencode/pr90-review/pnpm-root (PRIVATE) dependencies: @sentry/api 0.255.0
bun install v1.3.14 (0d9b296a) + @sentry/api@../package.tgz 1 package installed [76.00ms] /tmp/opencode/pr90-review/bun-root node_modules └── @sentry/api@../package.tgz Resolving dependencies Resolved, downloaded and extracted [1] Saved lockfile
npm error code ETARGET npm error notarget No matching version found for yarn@4.9.2. npm error notarget In most cases you or one of your dependencies are requesting a package version that doesn't exist. npm error A complete log of this run can be found in: /home/byk/.npm/_logs/2026-08-06T16_08_48_574Z-debug-0.log
!! dist/ !! src/
4.18.0 [ "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.15.1", "0.16.0", "0.16.1", "0.17.0", "0.17.2", "0.17.3", "0.17.4", "0.17.5", "0.17.6", "0.17.7", "0.17.8", "0.17.9", "0.17.10", "0.18.0", "0.18.1", "0.18.2", "0.19.0", "0.19.1", "0.20.0", "0.20.3", "0.20.4", "0.21.0", "0.21.1", "0.21.2", "0.21.3", "0.22.0", "0.23.0", "0.23.1", "0.23.2", "0.23.3", "0.23.4", "0.24.0", "0.24.1", "0.24.2", "0.24.3", "0.24.4", "0.24.5", "0.24.6", "0.25.1", "0.25.2", "0.25.3", "0.25.4", "0.26.0", "0.26.1", "0.27.0", "0.27.1", "0.27.2", "0.27.3", "0.27.4", "0.27.5", "0.28.1", "0.28.4", "1.0.0", "1.0.1", "1.0.2", "1.1.0", "1.2.0", "1.2.1", "1.3.1", "1.3.2", "1.4.0", "1.5.0", "1.5.1", "1.6.0", "1.7.0", "1.8.0", "1.9.1", "1.9.2", "1.9.4", "1.10.0", "1.10.1", "1.11.0", "1.11.1", "1.12.0", "1.12.1", "1.12.3", "1.13.0", "1.14.0", "1.15.0", "1.15.1", ...
src/valibot.gen.ts array boolean email integer isoTimestamp length maxLength maxValue minLength minValue never null nullable number object optional picklist pipe readonly record regex strictObject string union unknown url uuid void src/zod.gen.ts array boolean email enum int iso literal never null nullable number object optional record string union unknown url uuid void
{ typescript: '>=5' }
engines = { node: '>=22' }
peerDependencies = { zod: '^3.24.0' }
164K dist/index.js 772K dist/zod.js 724K dist/valibot.js 4.0K dist/browser-client.d.ts 4.0K dist/browser.d.ts 4.0K dist/client.gen.d.ts 96K dist/error-results.gen.d.ts 44K dist/index.d.ts 52K dist/pagination.gen.d.ts 136K dist/sdk.gen.d.ts 4.0K dist/sentry-errors.d.ts 8.0K dist/sentry-pagination.d.ts 1.1M dist/types.gen.d.ts 4.0K dist/valibot.d.ts 1.4M dist/valibot.gen.d.ts 4.0K dist/zod.d.ts 976K dist/zod.gen.d.ts
Success. Updated the following files: A ../../../../../tmp/opencode/pr90-review/npm-root-zod3/package.json A ../../../../../tmp/opencode/pr90-review/npm-root-valibot0/package.json A ../../../../../tmp/opencode/pr90-review/pnpm-root-zod3/package.json A ../../../../../tmp/opencode/pr90-review/bun-root-zod3/package.json A ../../../../../tmp/opencode/pr90-review/yarn-root-zod3/package.json
npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: @sentry/api@0.255.0 npm error Found: zod@3.24.0 npm error node_modules/zod npm error zod@"3.24.0" from the root project npm error npm error Could not resolve dependency: npm error peerOptional zod@">=4.4.0 <5" from @sentry/api@0.255.0 npm error node_modules/@sentry/api npm error @sentry/api@"file:../package.tgz" from the root project npm error npm error Conflicting peer dependency: zod@4.4.3 npm error node_modules/zod npm error peerOptional zod@">=4.4.0 <5" from @sentry/api@0.255.0 npm error node_modules/@sentry/api npm error @sentry/api@"file:../package.tgz" from the root project npm error npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error ...
npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: @sentry/api@0.255.0 npm error Found: valibot@0.42.1 npm error node_modules/valibot npm error valibot@"0.42.1" from the root project npm error npm error Could not resolve dependency: npm error peerOptional valibot@">=1.0.0 <2" from @sentry/api@0.255.0 npm error node_modules/@sentry/api npm error @sentry/api@"file:../package.tgz" from the root project npm error npm error Conflicting peer dependency: valibot@1.4.2 npm error node_modules/valibot npm error peerOptional valibot@">=1.0.0 <2" from @sentry/api@0.255.0 npm error node_modules/@sentry/api npm error @sentry/api@"file:../package.tgz" from the root project npm error npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error ...
Progress: resolved 1, reused 0, downloaded 0, added 0 Packages: +2 ++ Progress: resolved 2, reused 1, downloaded 1, added 2, done WARN Issues with peer dependencies found . └─┬ @sentry/api 0.255.0 └── ✕ unmet peer zod@">=4.4.0 <5": found 3.24.0 dependencies: + @sentry/api 0.255.0 + zod 3.24.0 (4.4.3 is available) Done in 1.6s using pnpm v10.28.0 Legend: production dependency, optional only, dev only /tmp/opencode/pr90-review/pnpm-root-zod3 (PRIVATE) dependencies: @sentry/api 0.255.0 └── zod 3.24.0 peer zod 3.24.0
bun install v1.3.14 (0d9b296a) + @sentry/api@../package.tgz + zod@3.24.0 2 packages installed [131.00ms] /tmp/opencode/pr90-review/bun-root-zod3 node_modules ├── @sentry/api@../package.tgz └── zod@3.24.0
➤ YN0000: · Yarn 4.18.0 ➤ YN0000: ┌ Resolution step ➤ YN0085: │ + @sentry/api@file:../package.tgz#../package.tgz::hash=16fa5b&locator=root-workspace-0b6124%40workspace%3A. ➤ YN0000: └ Completed in 0s 308ms ➤ YN0000: ┌ Fetch step ➤ YN0013: │ A package was added to the project (+ 5.34 MiB). ➤ YN0000: └ Completed ➤ YN0000: ┌ Link step ➤ YN0092: │ ESM support for PnP uses the experimental loader API and is therefore experimental ➤ YN0000: └ Completed ➤ YN0000: · Done with warnings in 0s 436ms └─ @sentry/api@file:../package.tgz#../package.tgz::hash=16fa5b&locator=root-workspace-0b6124%40workspace%3A. ├─ Instances: 1 └─ Version: 0.255.0
➤ YN0000: · Yarn 4.18.0 ➤ YN0000: ┌ Resolution step ➤ YN0085: │ + @sentry/api@file:../package.tgz#../package.tgz::hash=16fa5b&locator=root-workspace-0b6124%40workspace%3A., zod@npm:3.24.0 ➤ YN0000: └ Completed in 0s 609ms ➤ YN0000: ┌ Post-resolution validation ➤ YN0060: │ zod is listed by your project with version 3.24.0 (p90f314), which doesn't satisfy what @sentry/api requests (^4.4.0). ➤ YN0086: │ Some peer dependencies are incorrectly met by your project; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code. ➤ YN0000: └ Completed ➤ YN0000: ┌ Fetch step ➤ YN0013: │ 2 packages were added to the project (+ 6.02 MiB). ➤ YN0000: └ Completed ➤ YN0000: ┌ Link step ➤ YN0092: │ ESM support for PnP uses the experimental loader API and is therefore experimental ➤ YN0000: └ Completed ➤ YN0000: · Done with warnings in 0s 837ms └─ @sentry/api@file:../package.tgz#../package.tgz::hash=16fa5b&locator=root-workspace-0b6124%40workspace%3A. ...
Success. Updated the following files: A ../../../../../tmp/opencode/pr90-review/npm-zod400/package.json A ../../../../../tmp/opencode/pr90-review/npm-zod400/index.mjs
added 2 packages, and audited 3 packages in 1s
1 package is looking for funding
run `npm fund` for details
found 0 vulnerabilities
{ run_id: 1, sentry_run_id: null }
node:internal/modules/package_json_reader:301
throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'zod' imported from /tmp/opencode/pr90-review/npm-zod400/[eval]
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)
at packageResolve (node:internal/modules/esm/resolve:768:81)
at moduleResolve (node:internal/modules/esm/resolve:859:18)
at defaultResolve (node:internal/modules/esm/resolve:992:11)
at #cachedDefaultResolve (node:internal/modules/esm/loader:691:20)
at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:708:38)
at ModuleLoader.resolveSync (node:internal/modules/esm/loader:740:52)
at #resolve (node:internal/modules/esm/loader:673:17)
at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:593:35)
at node:internal/modules/esm/loader:622:32 {
code: 'ERR_MODULE_NOT_FOUND'
}
Node.js v24.16.0
4.0.0 3596853 1.0.0
556K /tmp/opencode/sentry-api-package-test/sentry-api-0.254.1.tgz 556K /tmp/opencode/sentry-api-0.255.0.tgz
undefined z.int is not a function
undefined z.int is not a function
function object
...output truncated... Full output saved to: /home/byk/.local/share/opencode/tool-output/tool_fd7da8ffe001boTL19aEHaakD2 Scoped package detected, looking in 'typescript__lib-es2019/symbol' Directory '/tmp/opencode/node_modules' does not exist, skipping all lookups in it. Scoped package detected, looking in 'typescript__lib-es2019/symbol' Directory '/tmp/node_modules' does not exist, skipping all lookups in it. Scoped package detected, looking in 'typescript__lib-es2019/symbol' Directory '/node_modules' does not exist, skipping all lookups in it. Scoped package detected, looking in 'typescript__lib-es2019/symbol' Loading module '@typescript/lib-es2019/symbol' from 'node_modules' folder, target file types: JavaScript. Searching all ancestor node_modules directories for fallback extensions: JavaScript. Directory '/tmp/opencode/pr90-review/node_modules' does not exist, skipping all lookups in it. Directory '/tmp/opencode/node_modules' does not exist, skipping all lookups in it. ...
5.5M /tmp/opencode/pr90-review/old/package 5.5M /tmp/opencode/pr90-review/new/package 772K /tmp/opencode/pr90-review/old/package/dist/zod.js 976K /tmp/opencode/pr90-review/old/package/dist/zod.gen.d.ts
added 1 package, and audited 4 packages in 1s 1 package is looking for funding run `npm fund` for details found 0 vulnerabilities
$ node build.mjs
[90m@hey-api/openapi-ts v0.91.1[39m
[90m[Job 1] [39m⏳ [36mGenerating from 1 input:[39m
[90m[Job 1] [39m[36m [1] [39m./openapi-normalized.json
❗️ SDK warning: unsupported security scheme. Please open an issue if you'd like it added https://github.com/hey-api/openapi-ts/issues
{
"type": "http",
"scheme": "DSN"
}
[90m[Job 1] [39m[32m✅ Done![39m Your output is in [96m/home/byk/Code/getsentry/sentry-api-schema/src[39m
generate-pagination: wrote /home/byk/Code/getsentry/sentry-api-schema/src/pagination.gen.ts
43 paginated operations (37 array-shaped, 6 compound)
117 exports total
generate-error-results: 212 status-discriminated wrappers
Bundled 17 modules in 16ms
index.js 167.74 KB (entry point)
Bundled 2 modules in 50ms
valibot.js 0.74 MB (entry point)
Bundled 2 modules in 47ms
zod.js 0.79 MB (entry point)
Bundled 2 modules in 4ms
browser.js 1.22 KB (entry point)
$ tsc -p tsconfig.test.json
bun test v1.3.14 (0d9b296a)
103 ...
<path>/home/byk/Code/getsentry/sentry-api-schema/build.mjs</path>
<type>file</type>
<content>
55: [
56: "",
57: "export { callWithTypedErrors, narrowError, SentryApiError } from './sentry-errors.ts';",
58: "export type { DocumentedSentryApiError, NarrowedResult, SentryApiResultError, SentryApiTransportError, SdkResult, UndocumentedSentryApiError } from './sentry-errors.ts';",
59: "export { parseSentryLinkHeader, unwrapResult, unwrapPaginatedResult, fetchPage, paginateAll, paginateUpTo } from './sentry-pagination.ts';",
60: "export type { UnwrappedResult, PaginatedResponse, PaginateAllOptions, PaginateUpToOptions, PageFetcher } from './sentry-pagination.ts';",
61: "export * from './error-results.gen.ts';",
62: "export * from './pagination.gen.ts';",
63: "",
64: ].join("\n"),
65: );
66:
67: // 5. Create standalone entry points.
68: // valibot/zod: validator-specific schemas with optional peer dependencies. ...
package.json:55 breaks root-only npm consumers that already use Zod 3. The package changes its optional peer from ^3.24.0 to >=4.4.0 <5. Despite being optional, npm validates the peer whenever Zod exists in the application. Reproduction: install the packed PR with @sentry/api and zod@3.24.0; npm 11 fails with ERESOLVE, even if the application imports only @sentry/api. pnpm and Yarn install with unmet-peer warnings, while Bun silently installs, so behavior differs across package managers. test/package.test.ts:8-13 only checks that metadata says optional; it never tests conflicts with an installed incompatible version and therefore gives false confidence about root dependency isolation. Minimal fix: keep the existing Zod 3 generator and ^3.24.0 peer in this package, or move the Zod 4 entry point into a separate package whose peer cannot affect root consumers. Add packed-package install tests for root-only projects containing Zod 3 and Valibot 0 across npm, pnpm, Yarn, and Bun.