Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Published types: `TransactionBuilder.d.ts` imports `DeferredRedeemer`, which `stripInternal` removes

Chiusa Adatta ai principianti
#554 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
api, testing-qa

Direzione di ricerca

Inizia da packages/evolution/src/sdk/builders/RedeemerBuilder.ts, dalla riga 87 di TransactionBuilder.ts e da packages/evolution/tsconfig.build.json; esamina in che modo stripInternal influisce sulle dichiarazioni generate. Riproduci l’esempio del consumer con TypeScript 5.9.3 e skipLibCheck disabilitato. Il lavoro è completato quando le dichiarazioni pubblicate esportano i tipi pubblici richiesti, il consumer supera il controllo dei tipi senza errori e DeferredRedeemerData["deferred"] non è più any.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

The type declarations published in 0.5.14 don't type-check; the sources are unchanged on main at 714a6da.

  • dist/sdk/builders/TransactionBuilder.d.ts imports DeferredRedeemer from ./RedeemerBuilder.js, but RedeemerBuilder.d.ts doesn't export it.
  • In RedeemerBuilder.ts, DeferredRedeemer is marked /** @internal */, and packages/evolution/tsconfig.build.json sets "stripInternal": true. The declaration is removed, while the import in TransactionBuilder.ts (line 87) stays.

Reproduce

package.json: "@evolution-sdk/evolution": "0.5.14", "typescript": "5.9.3"

tsconfig.json:

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "strict": true,
    "noEmit": true,
    "skipLibCheck": false
  },
  "include": ["index.ts"]
}

index.ts:

import * as Evolution from "@evolution-sdk/evolution"

export const sdk = Evolution

Then run npx tsc -p .

Expected

No errors.

Actual

node_modules/@evolution-sdk/evolution/dist/sdk/builders/TransactionBuilder.d.ts(54,15): error TS2305: Module '"./RedeemerBuilder.js"' has no exported member 'DeferredRedeemer'.

Notes

  • It is the only such error. Type-checking all 222 .d.ts files in dist reports just this one.
  • With skipLibCheck: true the build passes, but silently. The unresolved import becomes any, so DeferredRedeemerData["deferred"] is any for consumers. DeferredRedeemerData is documented as public (@since 2.0.0, @category state), and TxBuilderState.deferredRedeemers uses it.
  • Restoring four declarations fixes it. I restored the four @internal type declarations from RedeemerBuilder.ts (StaticRedeemer, SelfRedeemer, BatchRedeemer and DeferredRedeemer) into the published RedeemerBuilder.d.ts. Both the consumer above and all 222 files then type-check, and deferred is typed again. toDeferredRedeemer can stay internal. So dropping @internal from those four types is enough, unless DeferredRedeemerData isn't meant to be public after all.
  • CI could catch this kind of break. A consumer compiled with skipLibCheck: false would do it.

Investigated with AI assistance (Claude Code); the reproduction above was run with TypeScript 5.9.3 against 0.5.14.

Lingua principale
TypeScript
Stelle
22
Fork
31
Merge medio
3g 19m
PR unite (30g)
25

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IntersectMBO/evolution-sdk

Tutte le issue di IntersectMBO/evolution-sdk

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.