diff --git a/package.json b/package.json index 2d783c56b2a..a08b789a24f 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "playwright": "^1.52.0", "prettier": "^3.5.3", "rimraf": "^6.0.1", - "tstyche": "^4.1.0", + "tstyche": "^5.0.0", "tsx": "^4.19.4", "typescript": "^5.8.3", "vite": "^6.1.1", diff --git a/packages/effect/dtslint/Either.tst.ts b/packages/effect/dtslint/Either.tst.ts index 6aba74834de..23df737f231 100644 --- a/packages/effect/dtslint/Either.tst.ts +++ b/packages/effect/dtslint/Either.tst.ts @@ -220,10 +220,11 @@ describe("Either", () => { ) ).type.toBe], "b" | Error>>() - // TODO: this doesn't work but it should - expect.fail( + // @tstyche fixme -- This doesn't work but it should + expect( Either.filterOrLeft(literal$Error, Predicate.isString, (a) => { - expect.fail(a).type.toBe<"a">() + // @tstyche fixme -- This doesn't work but it should + expect(a).type.toBe<"a">() return "b" as const }) ).type.toBe>() @@ -237,8 +238,8 @@ describe("Either", () => { ) ).type.toBe>() - // TODO: this doesn't work but it should - expect.fail( + // @tstyche fixme -- This doesn't work but it should + expect( Either.filterOrLeft(literal$Error, Predicate.isString, (_s: string) => "b" as const) ).type.toBe>() expect( diff --git a/packages/effect/dtslint/Exit.tst.ts b/packages/effect/dtslint/Exit.tst.ts index f7f8bc11f65..141dbd228bb 100644 --- a/packages/effect/dtslint/Exit.tst.ts +++ b/packages/effect/dtslint/Exit.tst.ts @@ -11,10 +11,10 @@ describe("Exit", () => { if (Exit.exists(stringOrNumber$string, Predicate.isString)) { expect(stringOrNumber$string).type.toBe>() } - // TODO - // if (pipe(stringOrNumber$string, Exit.exists(Predicate.isString))) { - // expect(stringOrNumber$string).type.toBe>() - // } + if (pipe(stringOrNumber$string, Exit.exists(Predicate.isString))) { + // @tstyche fixme -- This doesn't work but it should + expect(stringOrNumber$string).type.toBe>() + } if (Exit.exists(Predicate.isString)(stringOrNumber$string)) { expect(stringOrNumber$string).type.toBe>() } diff --git a/packages/effect/dtslint/HashSet.tst.ts b/packages/effect/dtslint/HashSet.tst.ts index 882b72c5971..218ff5042c7 100644 --- a/packages/effect/dtslint/HashSet.tst.ts +++ b/packages/effect/dtslint/HashSet.tst.ts @@ -11,10 +11,10 @@ describe("HashSet", () => { if (HashSet.every(numberOrString, Predicate.isString)) { expect(numberOrString).type.toBe>() } - // TODO - // if (pipe(numberOrString, HashSet.every(Predicate.isString))) { - // expect(numberOrString).type.toBe>() - // } + if (pipe(numberOrString, HashSet.every(Predicate.isString))) { + // @tstyche fixme -- This doesn't work but it should + expect(numberOrString).type.toBe>() + } if (HashSet.every(Predicate.isString)(numberOrString)) { expect(numberOrString).type.toBe>() } diff --git a/packages/effect/dtslint/List.tst.ts b/packages/effect/dtslint/List.tst.ts index 467c44d57f8..dddf937d9cc 100644 --- a/packages/effect/dtslint/List.tst.ts +++ b/packages/effect/dtslint/List.tst.ts @@ -14,10 +14,10 @@ describe("List", () => { if (List.every(numberOrString, Predicate.isString)) { expect(numberOrString).type.toBe>() } - // TODO - // if (pipe(numberOrString, List.every(Predicate.isString))) { - // expect(numberOrString).type.toBe>() - // } + if (pipe(numberOrString, List.every(Predicate.isString))) { + // @tstyche fixme -- This doesn't work but it should + expect(numberOrString).type.toBe>() + } if (List.every(Predicate.isString)(numberOrString)) { expect(numberOrString).type.toBe>() } @@ -41,10 +41,10 @@ describe("List", () => { if (List.some(numberOrString, Predicate.isString)) { expect(numberOrString).type.toBe>() } - // TODO - // if (pipe(numberOrString, List.some(Predicate.isString))) { - // expect(numberOrString).type.toBe>() - // } + if (pipe(numberOrString, List.some(Predicate.isString))) { + // @tstyche fixme -- This doesn't work but it should + expect(numberOrString).type.toBe>() + } if (List.some(Predicate.isString)(numberOrString)) { expect(numberOrString).type.toBe>() } diff --git a/packages/effect/dtslint/Match.tst.ts b/packages/effect/dtslint/Match.tst.ts index 455e112d5f7..1bb5ccd100a 100644 --- a/packages/effect/dtslint/Match.tst.ts +++ b/packages/effect/dtslint/Match.tst.ts @@ -237,23 +237,23 @@ describe("Match", () => { const match = pipe( Match.type(), Match.when(Match.instanceOf(Uint8Array), (v) => { - // @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint8Array' was not generic + // @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint8Array' was not generic expect(v).type.toBe>() - // @tstyche if { target: ["<5.7"] } + // @tstyche if { target: "<5.7" } expect(v).type.toBe() return "uint8" }), Match.when(Match.instanceOf(Uint16Array), (v) => { - // @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint16Array' was not generic + // @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint16Array' was not generic expect(v).type.toBe>() - // @tstyche if { target: ["<5.7"] } + // @tstyche if { target: "<5.7" } expect(v).type.toBe() return "uint16" }), Match.orElse((v) => { - // @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint8Array' and 'Uint16Array' were not generic + // @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint8Array' and 'Uint16Array' were not generic expect(v).type.toBe | Uint16Array>() - // @tstyche if { target: ["<5.7"] } + // @tstyche if { target: "<5.7" } expect(v).type.toBe() return "a" }) diff --git a/packages/effect/dtslint/Number.tst.ts b/packages/effect/dtslint/Number.tst.ts index e7e779fc576..2d8994a7330 100644 --- a/packages/effect/dtslint/Number.tst.ts +++ b/packages/effect/dtslint/Number.tst.ts @@ -19,7 +19,7 @@ describe("Number", () => { const numOrString: number | string = 123 if (Number.isNumber(numOrString)) { expect(numOrString).type.toBe() - expect(numOrString).type.not.toBeAssignableWith() + expect(numOrString).type.not.toBeAssignableFrom() } }) @@ -29,8 +29,8 @@ describe("Number", () => { type DataFirst = typeof Number.sum // test the input type - expect>().type.toBeAssignableWith<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number, number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.sum(a, b)).type.toBe() @@ -43,8 +43,8 @@ describe("Number", () => { type DataFirst = typeof Number.subtract // test the input type - expect>().type.toBeAssignableWith<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number, number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.subtract(a, b)).type.toBe() @@ -57,9 +57,9 @@ describe("Number", () => { type DataFirst = typeof Number.multiply // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.multiply(a, b)).type.toBe() @@ -72,9 +72,9 @@ describe("Number", () => { type DataFirst = typeof Number.divide // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.divide(a, b)).type.toBe>() @@ -87,9 +87,9 @@ describe("Number", () => { type DataFirst = typeof Number.unsafeDivide // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.unsafeDivide(a, b)).type.toBe() @@ -100,7 +100,7 @@ describe("Number", () => { type DataFirst = typeof Number.increment // test the input type - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.increment(a)).type.toBe() @@ -111,7 +111,7 @@ describe("Number", () => { type DataFirst = typeof Number.decrement // test the input type - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.decrement(a)).type.toBe() @@ -122,7 +122,7 @@ describe("Number", () => { type DataFirst = typeof Number.Equivalence // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() // test the output type expect(Number.Equivalence(a, b)).type.toBe() @@ -132,7 +132,7 @@ describe("Number", () => { type DataFirst = typeof Number.Order // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() // test the output type expect(Number.Order(a, b)).type.toBe<-1 | 0 | 1>() @@ -144,8 +144,8 @@ describe("Number", () => { type DataFirst = typeof Number.lessThan // test the input type - expect>().type.toBeAssignableWith<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number, number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.lessThan(a, b)).type.toBe() @@ -158,9 +158,9 @@ describe("Number", () => { type DataFirst = typeof Number.lessThanOrEqualTo // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.lessThanOrEqualTo(a, b)).type.toBe() @@ -173,9 +173,9 @@ describe("Number", () => { type DataFirst = typeof Number.greaterThan // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.greaterThan(a, b)).type.toBe() @@ -188,9 +188,9 @@ describe("Number", () => { type DataFirst = typeof Number.greaterThanOrEqualTo // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.greaterThanOrEqualTo(a, b)).type.toBe() @@ -205,11 +205,11 @@ describe("Number", () => { type DataFirst = typeof Number.between // test the input type - expect>().type.toBeAssignableWith< + expect>().type.toBeAssignableFrom< [number, { minimum: number; maximum: number }] >() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.between(a, options)).type.toBe() @@ -224,11 +224,11 @@ describe("Number", () => { type DataFirst = typeof Number.clamp // test the input type - expect>().type.toBeAssignableWith< + expect>().type.toBeAssignableFrom< [number, { minimum: number; maximum: number }] >() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.clamp(a, options)).type.toBe() @@ -241,9 +241,9 @@ describe("Number", () => { type DataFirst = typeof Number.min // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.min(a, b)).type.toBe() @@ -256,9 +256,9 @@ describe("Number", () => { type DataFirst = typeof Number.max // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.max(a, b)).type.toBe() @@ -269,7 +269,7 @@ describe("Number", () => { type DataFirst = typeof Number.sign // test the input type - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.sign(a)).type.toBe<-1 | 0 | 1>() @@ -279,7 +279,7 @@ describe("Number", () => { type DataFirst = typeof Number.sumAll // test the input type - expect>().type.toBeAssignableWith< + expect>().type.toBeAssignableFrom< [Iterable] >() @@ -292,7 +292,7 @@ describe("Number", () => { type DataFirst = typeof Number.multiplyAll // test the input type - expect>().type.toBeAssignableWith< + expect>().type.toBeAssignableFrom< [Iterable] >() @@ -309,9 +309,9 @@ describe("Number", () => { type DataFirst = typeof Number.remainder // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.remainder(a, b)).type.toBe() @@ -322,7 +322,7 @@ describe("Number", () => { type DataFirst = typeof Number.nextPow2 // test the input type - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.nextPow2(a)).type.toBe() @@ -332,7 +332,7 @@ describe("Number", () => { type DataFirst = typeof Number.parse // test the input type - expect>().type.toBeAssignableWith<[string]>() + expect>().type.toBeAssignableFrom<[string]>() // test the output type expect(Number.parse("123")).type.toBe>() @@ -344,9 +344,9 @@ describe("Number", () => { type DataFirst = typeof Number.round // test the input type - expect>().type.toBeAssignableWith<[number, number]>() + expect>().type.toBeAssignableFrom<[number, number]>() - expect>().type.toBeAssignableWith<[number]>() + expect>().type.toBeAssignableFrom<[number]>() // test the output type expect(Number.round(a, 2)).type.toBe() diff --git a/packages/effect/dtslint/Predicate.tst.ts b/packages/effect/dtslint/Predicate.tst.ts index ee3de68d124..2cba23f8f1f 100644 --- a/packages/effect/dtslint/Predicate.tst.ts +++ b/packages/effect/dtslint/Predicate.tst.ts @@ -252,9 +252,9 @@ describe("Predicate", () => { }) it("isUint8Array", () => { - // @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint8Array' was not generic + // @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint8Array' was not generic expect(unknowns.filter(Predicate.isUint8Array)).type.toBe>>() - // @tstyche if { target: ["<5.7"] } + // @tstyche if { target: "<5.7" } expect(unknowns.filter(Predicate.isUint8Array)).type.toBe>() }) }) diff --git a/packages/effect/dtslint/Struct.tst.ts b/packages/effect/dtslint/Struct.tst.ts index 31bdb5da051..7a00e246994 100644 --- a/packages/effect/dtslint/Struct.tst.ts +++ b/packages/effect/dtslint/Struct.tst.ts @@ -245,8 +245,8 @@ describe("Struct", () => { expect(pipe(sr, Struct.pick("a"))) .type.toBe<{ a: boolean }>() - // TODO: this doesn't work but it should - expect.fail(Struct.pick).type.not.toBeCallableWith(sr, "b") + // @tstyche fixme -- This doesn't work but it should + expect(Struct.pick).type.not.toBeCallableWith(sr, "b") when(pipe).isCalledWith( sr, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e23b1c8d0b6..8538ea4aa1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,8 +140,8 @@ importers: specifier: ^6.0.1 version: 6.0.1 tstyche: - specifier: ^4.1.0 - version: 4.2.0(typescript@5.8.3) + specifier: ^5.0.0 + version: 5.0.0(typescript@5.8.3) tsx: specifier: ^4.19.4 version: 4.20.3 @@ -5023,7 +5023,6 @@ packages: libsql@0.4.7: resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==} - cpu: [x64, arm64, wasm32] os: [darwin, linux, win32] lighthouse-logger@1.4.2: @@ -6457,12 +6456,12 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tstyche@4.2.0: - resolution: {integrity: sha512-RCmilQJ3a+X6xbdrLAPEDkN3Hqwu/w+PQYUENR6/4Qn8zkOItz9B2IIdjhuNPtH1MamoM/TTXztnY7q9Sn493A==} - engines: {node: '>=20.9'} + tstyche@5.0.0: + resolution: {integrity: sha512-ukwBOKfWXLIORtXslLEzUOexRhehNimmOxbjues3xfjBfJv8zHd3kJnrZuufuhQtSJDU18NUF0v6RrnSh9uuaw==} + engines: {node: '>=20.12'} hasBin: true peerDependencies: - typescript: '>=4.7' + typescript: '>=5.0' peerDependenciesMeta: typescript: optional: true @@ -12934,7 +12933,7 @@ snapshots: tslib@2.8.1: {} - tstyche@4.2.0(typescript@5.8.3): + tstyche@5.0.0(typescript@5.8.3): optionalDependencies: typescript: 5.8.3 diff --git a/tstyche.config.json b/tstyche.config.json index 20f64b478ef..256ef24b0a2 100644 --- a/tstyche.config.json +++ b/tstyche.config.json @@ -1,6 +1,5 @@ { "$schema": "https://tstyche.org/schemas/config.json", - "checkSuppressedErrors": true, "testFileMatch": [ "packages/*/dtslint/**/*.tst.*" ]