You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Schema.d.ts references SchemaAST.Sentinel, which @internal-stripping removes from the published SchemaAST.d.ts — consumers without skipLibCheck fail to compile #7187
Status: work in progress. Filing early to track the defect; I will follow up with a minimal reproduction repository.
What happens
The published effect package's dist/Schema.d.ts references SchemaAST.Sentinel in a public type:
// dist/Schema.d.ts (4.0.0-beta.107, line ~10815)readonly"~sentinels"?: ReadonlyArray<SchemaAST.Sentinel>|undefined;
but Sentinel is declared /** @internal */ in src/SchemaAST.ts (~line 2515), so it is stripped from the published dist/SchemaAST.d.ts (zero occurrences). Any consumer whose tsconfig does not set skipLibCheck: true fails to compile:
node_modules/effect/dist/Schema.d.ts(10815,57): error TS2694: Namespace '".../effect/dist/SchemaAST"' has no exported member 'Sentinel'.
Observed on 4.0.0-beta.105 and still present on 4.0.0-beta.107, with both tsc (TypeScript 7.0.2) and tsgo.
Expected
The published declaration set should be self-consistent: either Sentinel ships in SchemaAST.d.ts (drop the @internal, or exempt it from stripping since a public type references it), or the ~sentinels member's declared type avoids the internal name.
Workaround
Local patch appending the two-field type back onto dist/SchemaAST.d.ts:
Activity
chore(repos): pin effect to effect@4.0.0-beta.107
fix(schema): strip internal sentinel annotation, closes Effect-TS#7187 (