diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 25de0344..0675677e 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -10,7 +10,7 @@ When creating or naming pull requests, follow the [gitmoji](https://gitmoji.dev/ - Example: `✨ Add new arbitrary for dates` - Example: `🐛 Fix edge case in integer shrinking` -- **For changes to other packages** (ava, vitest, jest, worker, poisoning, packaged, expect-type): Use the format `emoji(package-name) Description` +- **For changes to other packages** (ava, vitest, jest, worker, poisoning, packaged): Use the format `emoji(package-name) Description` - Example: `👷(vitest) Add support for new vitest features` - Example: `🐛(jest) Fix compatibility with jest 29` - Example: `📝(ava) Update documentation for ava integration` diff --git a/.github/workflows/build-status.yml b/.github/workflows/build-status.yml index 02ad0dc9..c3298b70 100644 --- a/.github/workflows/build-status.yml +++ b/.github/workflows/build-status.yml @@ -1121,78 +1121,4 @@ jobs: packages/worker/${{env.TGZ_NAME}}.sigstore.json body: | - [View attestation](${{steps.attest.outputs.attestation-url}}) • [Documentation](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) - check_publish_expect_type: - name: Check publish @fast-check/expect-type - needs: check_any_package - if: needs.check_any_package.outputs.tag_count != '0' - runs-on: ubuntu-latest - outputs: - status: ${{steps.check_has_tag.outcome}} - tag: ${{steps.check_has_tag.outputs.tag}} - steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - with: - persist-credentials: false - fetch-depth: 0 - - id: check_has_tag - name: Check if one tag matches the package - run: echo "tag=$(git tag --points-at HEAD | grep '^expect-type/v[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*')" >> "$GITHUB_OUTPUT" - continue-on-error: true - publish_package_expect_type: - name: Publish @fast-check/expect-type - needs: check_publish_expect_type - if: needs.check_publish_expect_type.outputs.status == 'success' - runs-on: ubuntu-latest - permissions: - contents: write - id-token: write - attestations: write - steps: - - name: Using Node v24.x - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version: '24.x' - registry-url: 'https://registry.npmjs.org' - check-latest: true - - name: Download production packages - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 - with: - name: bundles - path: packages/ - - uses: step-security/wait-for-secrets@084b3ae774c0e0003a9307ae4f487c10f1f998fe # v1.2.1 - id: wait-for-secrets - with: - secrets: | - OTP: - name: 'OTP to publish package' - description: 'OTP from authenticator app' - - name: Set package filename - run: echo "TGZ_NAME=expect-type-$(tar -xzOf packages/expect-type/package.tgz package/package.json | jq -r '.version').tgz" >> $GITHUB_ENV - - name: Rename package for publication - run: mv packages/expect-type/package.tgz "packages/expect-type/$TGZ_NAME" - - name: Publish @fast-check/expect-type - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - PUBLISH_TAG: ${{github.ref == 'refs/heads/main' && 'latest' || startsWith(github.ref, 'refs/heads/next-') && 'next' || 'legacy'}} - OTP_VALUE: ${{steps.wait-for-secrets.outputs.OTP}} - run: npm publish --access public --otp "$OTP_VALUE" --tag "$PUBLISH_TAG" "packages/expect-type/$TGZ_NAME" - - uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # v3.1.0 - id: attest - with: - subject-path: packages/expect-type/${{env.TGZ_NAME}} - - name: Rename attestation bundle - run: mv "${{steps.attest.outputs.bundle-path}}" "packages/expect-type/${{env.TGZ_NAME}}.sigstore.json" - - name: Update GitHub Release - uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 - with: - tag_name: ${{needs.check_publish_expect_type.outputs.tag}} - append_body: true - fail_on_unmatched_files: true - overwrite_files: false - files: | - packages/expect-type/${{env.TGZ_NAME}} - packages/expect-type/${{env.TGZ_NAME}}.sigstore.json - body: | - [View attestation](${{steps.attest.outputs.attestation-url}}) • [Documentation](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) diff --git a/.github/zizmor.yml b/.github/zizmor.yml index 1a0b287d..8a210744 100644 --- a/.github/zizmor.yml +++ b/.github/zizmor.yml @@ -16,7 +16,6 @@ rules: - build-status.yml:931 # poisoning - build-status.yml:1005 # vitest - build-status.yml:1079 # worker - - build-status.yml:1153 # expect-type template-injection: ignore: # These are safe - TGZ_NAME is set from package.json version in controlled environment @@ -28,4 +27,3 @@ rules: - build-status.yml:963 # poisoning - build-status.yml:1037 # vitest - build-status.yml:1111 # worker - - build-status.yml:1185 # expect-type diff --git a/eslint.config.mjs b/eslint.config.mjs index fb2b3e67..bc923b1e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -56,7 +56,6 @@ export default [ 'packages/ava/test/ava-specs/testProp.js', '**/ava.config.js', '**/jest.config.js', - 'packages/expect-type/src/*.js', 'packages/packaged/bin/*.js', ], languageOptions: { diff --git a/packages/expect-type/.gitignore b/packages/expect-type/.gitignore deleted file mode 100644 index 76ec7482..00000000 --- a/packages/expect-type/.gitignore +++ /dev/null @@ -1 +0,0 @@ -src/cjs/**/*.d.ts \ No newline at end of file diff --git a/packages/expect-type/CHANGELOG.md b/packages/expect-type/CHANGELOG.md deleted file mode 100644 index 3486514f..00000000 --- a/packages/expect-type/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# 0.2.1 - -_Adapted some build scripts_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.2.1)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.2.0...expect-type%2Fv0.2.1)] - -## Fixes - -- ([PR#5808](https://github.com/dubzzz/fast-check/pull/5808)) CI: Update tsconfig to ES2020 - -# 0.2.0 - -_Declare root of the package as ESM_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.2.0)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.1.0...expect-type%2Fv0.2.0)] - -## Breaking changes - -- ([PR#4587](https://github.com/dubzzz/fast-check/pull/4587)) CI: Move build chain to ESM - ---- - -# 0.1.0 - -_Lighter import with less internals to load_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.1.0)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.0.5...expect-type%2Fv0.1.0)] - -## Features - -- ([PR#4422](https://github.com/dubzzz/fast-check/pull/4422)) Prefer "import type" over raw "import" - -## Fixes - -- ([PR#4284](https://github.com/dubzzz/fast-check/pull/4284)) Test: Confirm basic typings work well - ---- - -# 0.0.5 - -_Fix typings for node native esm_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.0.5)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.0.4...expect-type%2Fv0.0.5)] - -## Fixes - -- ([PR#4263](https://github.com/dubzzz/fast-check/pull/4263)) Bug: Fix typings for node native esm - -# 0.0.4 - -_Better support for types on ESM targets_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.0.4)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.0.3...expect-type%2Fv0.0.4)] - -## Fixes - -- ([PR#4175](https://github.com/dubzzz/fast-check/pull/4175)) Bug: Better declare ESM's types -- ([PR#4033](https://github.com/dubzzz/fast-check/pull/4033)) Tooling: Update formatting - -# 0.0.3 - -_Attach provenance to the packages_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.0.3)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.0.2...expect-type%2Fv0.0.3)] - -## Fixes - -- ([PR#3774](https://github.com/dubzzz/fast-check/pull/3774)) Security: Attach provenance to the packages - -# 0.0.2 - -_Fix broken links in README_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.0.2)][[Diff](https://github.com/dubzzz/fast-check/compare/expect-type%2Fv0.0.1...expect-type%2Fv0.0.2)] - -## Fixes - -- ([PR#3397](https://github.com/dubzzz/fast-check/pull/3397)) Doc: Fix links in README -- ([PR#3473](https://github.com/dubzzz/fast-check/pull/3473)) Funding: Re-order links in funding section - -# 0.0.1 - -_First stable release of `@fast-check/expect-type`_ -[[Code](https://github.com/dubzzz/fast-check/tree/expect-type%2Fv0.0.1)] - -Make sure your types are the ones you expect (similar to `tsd`) diff --git a/packages/expect-type/LICENSE b/packages/expect-type/LICENSE deleted file mode 100644 index 74391e0b..00000000 --- a/packages/expect-type/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Nicolas DUBIEN - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/expect-type/README.md b/packages/expect-type/README.md deleted file mode 100644 index 3c98370c..00000000 --- a/packages/expect-type/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# `@fast-check/expect-type` - -Make sure your types are the ones you expect (similar to `tsd`) - -npm version -monthly downloads -License - ---- - -## Easy to use - -This package performs compilation time checks only. Running the check functions at runtime is a no-op. - -```ts -import { expectType, expectTypeAssignable } from '@fast-check/expect-type'; -// your code or you own imports - -expectType()(f(1, 2), 'expect the output of f when passed 1 and 2 to be number'); -expectTypeAssignable()(f(1, 2), 'expect the output of f when passed 1 and 2 to be assignable to number'); -``` diff --git a/packages/expect-type/package.json b/packages/expect-type/package.json deleted file mode 100644 index d9ccc892..00000000 --- a/packages/expect-type/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "@fast-check/expect-type", - "description": "Make sure your types are the ones you expect (similar to tsd)", - "version": "0.2.1", - "type": "module", - "main": "src/main.js", - "exports": { - "./package.json": "./package.json", - ".": { - "require": { - "types": "./src/cjs/main.d.ts", - "default": "./src/cjs/main.js" - }, - "import": { - "types": "./src/main.d.ts", - "default": "./src/main.js" - } - } - }, - "module": "src/main.js", - "types": "src/main.d.ts", - "files": [ - "src" - ], - "scripts": { - "build": "pnpm run build:publish-types", - "build-ci": "pnpm run build", - "build:publish-types": "cp src/*.d.ts src/cjs/", - "typecheck": "tsc --noEmit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/dubzzz/fast-check.git", - "directory": "packages/expect-type" - }, - "author": "Nicolas DUBIEN ", - "license": "MIT", - "bugs": { - "url": "https://github.com/dubzzz/fast-check/issues" - }, - "homepage": "https://github.com/dubzzz/fast-check/tree/main/packages/expect-type#readme", - "devDependencies": { - "@fast-check/expect-type": "workspace:*", - "typescript": "~5.9.3" - }, - "keywords": [ - "type", - "checker", - "tsd", - "assert", - "typescript" - ], - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] -} diff --git a/packages/expect-type/src/cjs/main.js b/packages/expect-type/src/cjs/main.js deleted file mode 100644 index 77793828..00000000 --- a/packages/expect-type/src/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.expectType = function expectType() { - return function () {}; -}; -exports.expectTypeAssignable = function expectTypeAssignable() { - return function () {}; -}; diff --git a/packages/expect-type/src/cjs/package.json b/packages/expect-type/src/cjs/package.json deleted file mode 100644 index 5bbefffb..00000000 --- a/packages/expect-type/src/cjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/packages/expect-type/src/internals.d.ts b/packages/expect-type/src/internals.d.ts deleted file mode 100644 index b6ce6133..00000000 --- a/packages/expect-type/src/internals.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -export declare type Not = T extends true ? false : true; -export declare type And = T extends true ? (U extends true ? true : false) : false; -export declare type Or = T extends false ? (U extends false ? false : true) : true; -export declare type IsNever = [T] extends [never] ? true : false; -export declare type Extends = T extends U ? true : false; -export declare type ExtendsString = - Extends extends boolean ? (boolean extends Extends ? true : false) : false; // Extends is: false for unknown but boolean for any -export declare type IsUnknown = And< - And>, Extends>, - And, Not>> ->; -export declare type IsAny = And< - And>, Not>>, - And, Extends extends true ? true : false> ->; - -declare type DeeperIsSame = - IsAny extends false - ? T extends object - ? { [K in keyof (T | U)]: IsSame } extends { [K in keyof (T | U)]: true } - ? true - : false - : true - : false; - -export declare type IsSame = [T, U] extends [U, T] - ? Or< - // T and U are either both any or both unknown or both never - // (T is any & U is any) OR (T is unknown & U is unknown) - Or, IsAny>, And, IsUnknown>>, And, IsNever>>, - // Neither T nor U is any or unknown and if they are objects their values are deeply equal - And< - // T is not any & U is not any & T is no unknown & U is not unknown & T is no never & U is not never - And< - And>, Not>>, And>, Not>>>, - And>, Not>> - >, - // T and U are deeply equal - DeeperIsSame - > - > - : false; diff --git a/packages/expect-type/src/main.d.ts b/packages/expect-type/src/main.d.ts deleted file mode 100644 index c13faf0d..00000000 --- a/packages/expect-type/src/main.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { IsSame, Extends } from './internals.js'; -export declare function expectType(): ( - arg: TReal, - ...noArgs: IsSame extends true ? [string] : [{ expected: TExpectedType; got: TReal }] -) => void; -export declare function expectTypeAssignable(): ( - arg: TReal, - ...noArgs: Extends extends true ? [string] : [{ expected: TExpectedType; got: TReal }] -) => void; diff --git a/packages/expect-type/src/main.js b/packages/expect-type/src/main.js deleted file mode 100644 index 70cc468a..00000000 --- a/packages/expect-type/src/main.js +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-empty-function */ -export function expectType() { - return function () {}; -} -export function expectTypeAssignable() { - return function () {}; -} diff --git a/packages/expect-type/test-types/main.ts b/packages/expect-type/test-types/main.ts deleted file mode 100644 index 335f2e76..00000000 --- a/packages/expect-type/test-types/main.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { expectType, expectTypeAssignable } from '@fast-check/expect-type'; - -expectType()(''.toLowerCase(), 'toLowerCase outputs a string'); -expectTypeAssignable()(''.toLowerCase(), 'toLowerCase outputs a type is assignable to string|number'); diff --git a/packages/expect-type/test/internals.spec.ts b/packages/expect-type/test/internals.spec.ts deleted file mode 100644 index 122f4cd8..00000000 --- a/packages/expect-type/test/internals.spec.ts +++ /dev/null @@ -1,95 +0,0 @@ -import type { Not, And, Or, IsNever, IsUnknown, IsAny, IsSame } from '../src/internals'; - -export const Test_Not_true: Not = false; -export const Test_Not_false: Not = true; - -export const Test_And_false_false: And = false; -export const Test_And_false_true: And = false; -export const Test_And_true_false: And = false; -export const Test_And_true_true: And = true; - -export const Test_Or_false_false: Or = false; -export const Test_Or_false_true: Or = true; -export const Test_Or_true_false: Or = true; -export const Test_Or_true_true: Or = true; - -export const Test_IsNever_null: IsNever = false; -export const Test_IsNever_undefined: IsNever = false; -export const Test_IsNever_number: IsNever = false; -export const Test_IsNever_any: IsNever = false; -export const Test_IsNever_unknown: IsNever = false; -export const Test_IsNever_never: IsNever = true; - -export const Test_IsUnknown_null: IsUnknown = false; -export const Test_IsUnknown_undefined: IsUnknown = false; -export const Test_IsUnknown_number: IsUnknown = false; -export const Test_IsUnknown_any: IsUnknown = false; -export const Test_IsUnknown_unknown: IsUnknown = true; -export const Test_IsUnknown_never: IsUnknown = false; - -export const Test_IsAny_null: IsAny = false; -export const Test_IsAny_undefined: IsAny = false; -export const Test_IsAny_number: IsAny = false; -export const Test_IsAny_any: IsAny = true; -export const Test_IsAny_unknown: IsAny = false; -export const Test_IsAny_never: IsAny = false; - -export const Test_IsSame_true_true: IsSame = true; -export const Test_IsSame_tuple_true_tuple_true: IsSame<[true], [true]> = true; -export const Test_IsSame_return_true_return_true: IsSame<() => true, () => true> = true; -export const Test_IsSame_take_true_take_true: IsSame<(v: true) => void, (v: true) => void> = true; -export const Test_IsSame_true_false: IsSame = false; -export const Test_IsSame_return_true_return_false: IsSame<() => true, () => false> = false; -export const Test_IsSame_take_true_take_false: IsSame<(v: true) => void, (v: false) => void> = false; -export const Test_IsSame_take_true_take_true_and_false: IsSame<(v: true) => void, (v: true, u: false) => void> = false; -// @ts-expect-error - Variadic arguments are somehow ignored at the moment -export const Test_IsSame_take_1_take_1_and_others: IsSame<(v: 1) => 0, (v: 1, ...u: unknown[]) => 0> = false; -export const Test_IsSame_true_boolean: IsSame = false; -export const Test_IsSame_never_boolean: IsSame = false; -export const Test_IsSame_never_any: IsSame = false; -export const Test_IsSame_never_unknown: IsSame = false; -export const Test_IsSame_never_never: IsSame = true; -export const Test_IsSame_tuple_never_tuple_never: IsSame<[never], [never]> = true; -export const Test_IsSame_any_boolean: IsSame = false; -export const Test_IsSame_any_any: IsSame = true; -export const Test_IsSame_any_any_Bis: IsSame, true> = true; -export const Test_IsSame_tuple_any_tuple_any: IsSame<[any], [any]> = true; -export const Test_IsSame_set_any_set_any: IsSame, Set> = true; -export const Test_IsSame_any_tuple_any: IsSame = false; -export const Test_IsSame_tuple_any_any: IsSame<[any], any> = false; -export const Test_IsSame_any_unknown: IsSame = false; -export const Test_IsSame_any_never: IsSame = false; -export const Test_IsSame_unknown_boolean: IsSame = false; -export const Test_IsSame_unknown_any: IsSame = false; -export const Test_IsSame_unknown_unknown: IsSame = true; -export const Test_IsSame_tuple_unknown_tuple_unknown: IsSame<[unknown], [unknown]> = true; -export const Test_IsSame_set_unknown_set_unknown: IsSame, Set> = true; -export const Test_IsSame_unknown_never: IsSame = false; -export const Test_IsSame_set_unknown_set_number: IsSame, Set> = false; -export const Test_IsSame_tuple_number_tuple_string: IsSame<[number], [string]> = false; -export const Test_IsSame_tuple_any_tuple_unknown: IsSame<[any], [unknown]> = false; -export const Test_IsSame_tuple_unknown_tuple_any: IsSame<[unknown], [any]> = false; -export const Test_IsSame_tuple_2_any_tuple_2_unknown: IsSame<[any, any], [unknown, unknown]> = false; -export const Test_IsSame_deep_tuple_any_deep_tuple_unknown: IsSame<[[any]], [[unknown]]> = false; -export const Test_IsSame_object_any_object_unknown: IsSame<{ a: any }, { a: unknown }> = false; -export const Test_IsSame_object_any_partial_object_unknown: IsSame<{ a: any }, { a?: unknown }> = false; -// @ts-expect-error - Set is assignable to Set and vice-versa and deep equality fails for -export const Test_IsSame_set_any_set_unknown: IsSame, Set> = false; - -type Tree = { value: T } | { left: Tree; right: Tree }; -export const Test_IsSame_tree_number_tree_number: IsSame, Tree> = true; -export const Test_IsSame_tree_tuple_number_tree_tuple_number: IsSame, Tree<[number]>> = true; -export const Test_IsSame_tree_never_tree_never: IsSame, Tree> = true; -export const Test_IsSame_tree_tuple_never_tree_tuple_never: IsSame, Tree<[never]>> = true; -export const Test_IsSame_tree_any_tree_any: IsSame, Tree> = true; -export const Test_IsSame_tree_tuple_any_tree_tuple_any: IsSame, Tree<[any]>> = true; -export const Test_IsSame_tree_unknown_tree_unknown: IsSame, Tree> = true; -export const Test_IsSame_tree_tuple_unknown_tree_tuple_unknown: IsSame, Tree<[unknown]>> = true; -export const Test_IsSame_tree_number_tree_string: IsSame, Tree> = false; -export const Test_IsSame_tree_number_tree_unknown: IsSame, Tree> = false; -// @ts-expect-error - Tree is assignable to Tree and vice-versa and deep equality fails for -export const Test_IsSame_tree_number_tree_any: IsSame, Tree> = false; -// @ts-expect-error - Tree is assignable to Tree and vice-versa and deep equality fails for -export const Test_IsSame_tree_unknown_tree_any: IsSame, Tree> = false; -// @ts-expect-error - Tree is assignable to Tree and vice-versa and deep equality fails for -export const Test_IsSame_tree_any_tree_unknown: IsSame, Tree> = false; diff --git a/packages/expect-type/test/main.spec.ts b/packages/expect-type/test/main.spec.ts deleted file mode 100644 index 5d9d89da..00000000 --- a/packages/expect-type/test/main.spec.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { expectType, expectTypeAssignable } from '../src/main'; - -function type() { - return null as any as T; -} - -// expectType - -expectType<5>()(type<5>(), '5 is 5'); -expectType()(type(), 'number is number'); -expectType()(type(), 'never is never'); -expectType()(type(), 'any is any'); -expectType()(type(), 'unknown is unknown'); -expectType<{ a: number }>()(type<{ a: number }>(), '{a:number} is {a:number}'); -expectType>()(type>(), 'Promise<5> is Promise<5>'); -expectType<[5]>()(type<[5]>(), '[5] is [5]'); -expectType<[any]>()(type<[any]>(), '[any] is [any]'); - -// @ts-expect-error - 5 is not number -expectType()(type<5>(), '5 is not number'); -// @ts-expect-error - number is not 5 -expectType<5>()(type(), 'number is not 5'); -// @ts-expect-error - number is not never -expectType()(type(), 'number is not never'); -// @ts-expect-error - any is not never -expectType()(type(), 'any is not never'); -// @ts-expect-error - unknown is not never -expectType()(type(), 'unknown is not never'); -// @ts-expect-error - number is not any -expectType()(type(), 'number is not any'); -// @ts-expect-error - never is not any -expectType()(type(), 'never is not any'); -// @ts-expect-error - unknown is not any -expectType()(type(), 'unknown is not any'); -// @ts-expect-error - number is not unknown -expectType()(type(), 'number is not unknown'); -// @ts-expect-error - never is not unknown -expectType()(type(), 'never is not unknown'); -// @ts-expect-error - any is not unknown -expectType()(type(), 'any is not unknown'); -// @ts-expect-error - {a?:number} is not {a:number} -expectType<{ a: number }>()(type<{ a?: number }>(), '{a?:number} is not {a:number}'); -// @ts-expect-error - {a:number} is not {a?:number} -expectType<{ a?: number }>()(type<{ a: number }>(), '{a:number} is not {a?:number}'); -// @ts-expect-error - {a:number} is not {} -expectType<{}>()(type<{ a: number }>(), '{a:number} is not {}'); -// @ts-expect-error - Promise is not Promise<5> -expectType>()(type>(), 'Promise is not Promise<5>'); -// @ts-expect-error - Promise<5> is not Promise -expectType>()(type>(), 'Promise<5> is not Promise'); -// @ts-expect-error - [15] is not [5] -expectType<[5]>()(type<[15]>(), '[15] is not [5]'); -//// @ts-expect-error - [unknown] is not [any] -//expectType<[any]>()(type<[unknown]>(), '[unknown] is not [any]'); -//// @ts-expect-error - [any] is not [unknown] -//expectType<[unknown]>()(type<[any]>(), '[any] is not [unknown]'); - -// expectTypeAssignable - -expectTypeAssignable()(type(), 'number is assignable to number'); -expectTypeAssignable()(type<5>(), '5 is assignable to number'); -expectTypeAssignable<3 | 5>()(type<5>(), '5 is assignable to 3|5'); -expectTypeAssignable()(type(), 'number is assignable to unknown'); -expectTypeAssignable()(type(), 'number is assignable to any'); -expectTypeAssignable<{ a?: number }>()(type<{ a: number }>(), '{a:number} is assignable to {a?:number}'); -expectTypeAssignable<{}>()(type<{ a: number }>(), '{a:number} is assignable to {}'); - -// @ts-expect-error - number is not assignable to 5 -expectTypeAssignable<5>()(type(), 'number is not assignable to 5'); -// @ts-expect-error - 3|5 is not assignable to 5 -expectTypeAssignable<5>()(type<3 | 5>(), '3|5 is not assignable to 5'); -// @ts-expect-error - {a?:number} is not assignable to {a:number} -expectTypeAssignable<{ a: number }>()(type<{ a?: number }>(), '{a?:number} is not assignable to {a:number}'); -// @ts-expect-error - unknown is not assignable to number -expectTypeAssignable()(type(), 'unknown is not assignable to number'); -// @ts-expect-error - unknown is not assignable to never -expectTypeAssignable()(type(), 'unknown is not assignable to never'); diff --git a/packages/expect-type/tsconfig.json b/packages/expect-type/tsconfig.json deleted file mode 100644 index 51bf44c3..00000000 --- a/packages/expect-type/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.common.json" -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f115a419..dfeae454 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,15 +142,6 @@ importers: specifier: ^4.0.5 version: 4.0.5(@types/debug@4.1.12)(@types/node@24.10.7)(happy-dom@20.3.4)(jiti@1.21.7)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.1) - packages/expect-type: - devDependencies: - '@fast-check/expect-type': - specifier: workspace:* - version: 'link:' - typescript: - specifier: ~5.9.3 - version: 5.9.3 - packages/fast-check: dependencies: pure-rand: diff --git a/vitest.config.mjs b/vitest.config.mjs index 66256af3..1a90e976 100644 --- a/vitest.config.mjs +++ b/vitest.config.mjs @@ -6,7 +6,6 @@ const allProjects = [ // All packages ...readdirSync(join(import.meta.dirname, 'packages'), { withFileTypes: true }) .filter((file) => file.isDirectory()) - .filter((dir) => dir.name !== 'expect-type') .map((dir) => join(dir.parentPath, dir.name)), // Other directories join(import.meta.dirname, 'examples'),