Skip to content

[transports-http] ParamResolver가 zod 공개 타입을 노출하지만 직접 의존성을 선언하지 않음 #699

Description

@kang-heewon

Problem

@croco/transports-http는 exported ParamResolver의 타입 표면에서 zod 타입을 사용하지만, 패키지 자체는 zod를 직접 dependency로 선언하지 않습니다. 소비자와 패키지 매니저 설정에 따라 타입 해석이 transitive dependency에 의존하게 됩니다.

Evidence

  • packages/transports-http/src/libs/ParamResolver.ts:13type { z }zod에서 import합니다.
  • packages/transports-http/src/libs/ParamResolver.ts:163-168의 public method signature가 z.ZodType을 포함합니다.
  • packages/transports-http/src/index.ts:5:43-52ParamResolver를 public export로 노출합니다.
  • packages/transports-http/package.json:30-47의 dependencies에는 zod가 직접 포함되어 있지 않습니다.

Desired Outcome

패키지의 공개 타입 표면에서 참조하는 외부 패키지는 해당 패키지의 직접 dependency 또는 peer dependency로 명확히 선언되어야 합니다.

Suggested Approach

  • transports-httpzod 직접 dependency를 추가하거나 타입 표면에서 zod를 숨깁니다.
  • package entrypoint type smoke test로 transitive dependency 누락을 잡습니다.
  • protocols-rest를 통한 우연한 transitive resolution에 의존하지 않도록 정리합니다.

Acceptance Criteria

  • @croco/transports-http만 설치해도 exported type declarations가 해석됩니다.
  • ParamResolver public API의 외부 타입 의존성이 manifest에 반영됩니다.
  • 패키지 entrypoint smoke test가 추가되거나 기존 smoke matrix에 포함됩니다.

Validation

  • pnpm test --filter=@croco/transports-http
  • pnpm typecheck --filter=@croco/transports-http
  • isolated package install/type smoke

Metadata

Metadata

Assignees

Labels

P1Priority 1 issuebugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions