diff --git a/package.json b/package.json index 32205bc..5a4612c 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "devDependencies": { "@commitlint/config-conventional": "^19.8.1", "@commitlint/types": "^19.8.1", - "@types/node": "^22.15.16", + "@types/node": "^22.15.17", "@vitest/coverage-v8": "^3.1.3", "@webdeveric/eslint-config-ts": "^0.11.0", "@webdeveric/prettier-config": "^0.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cfe89a5..6bfd5a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,11 +15,11 @@ importers: specifier: ^19.8.1 version: 19.8.1 '@types/node': - specifier: ^22.15.16 - version: 22.15.16 + specifier: ^22.15.17 + version: 22.15.17 '@vitest/coverage-v8': specifier: ^3.1.3 - version: 3.1.3(vitest@3.1.3(@types/node@22.15.16)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1)) + version: 3.1.3(vitest@3.1.3(@types/node@22.15.17)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1)) '@webdeveric/eslint-config-ts': specifier: ^0.11.0 version: 0.11.0(eslint@8.57.1)(typescript@5.8.3) @@ -28,7 +28,7 @@ importers: version: 0.3.0(prettier@3.5.3) commitlint: specifier: ^19.8.1 - version: 19.8.1(@types/node@22.15.16)(typescript@5.8.3) + version: 19.8.1(@types/node@22.15.17)(typescript@5.8.3) commitlint-plugin-cspell: specifier: ^0.2.0 version: 0.2.0(@commitlint/lint@19.8.1) @@ -76,7 +76,7 @@ importers: version: 0.9.0 vitest: specifier: ^3.1.3 - version: 3.1.3(@types/node@22.15.16)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1) + version: 3.1.3(@types/node@22.15.17)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1) packages: @@ -986,8 +986,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.15.16': - resolution: {integrity: sha512-3pr+KjwpVujqWqOKT8mNR+rd09FqhBLwg+5L/4t0cNYBzm/yEiYGCxWttjaPBsLtAo+WFNoXzGJfolM1JuRXoA==} + '@types/node@22.15.17': + resolution: {integrity: sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4027,11 +4027,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@19.8.1(@types/node@22.15.16)(typescript@5.8.3)': + '@commitlint/cli@19.8.1(@types/node@22.15.17)(typescript@5.8.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@22.15.16)(typescript@5.8.3) + '@commitlint/load': 19.8.1(@types/node@22.15.17)(typescript@5.8.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -4078,7 +4078,7 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@22.15.16)(typescript@5.8.3)': + '@commitlint/load@19.8.1(@types/node@22.15.17)(typescript@5.8.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 @@ -4086,7 +4086,7 @@ snapshots: '@commitlint/types': 19.8.1 chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.8.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@22.15.16)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@22.15.17)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -4931,13 +4931,13 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.15.16 + '@types/node': 22.15.17 '@types/estree@1.0.7': {} '@types/json5@0.0.29': {} - '@types/node@22.15.16': + '@types/node@22.15.17': dependencies: undici-types: 6.21.0 @@ -5079,7 +5079,7 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.7.2': optional: true - '@vitest/coverage-v8@3.1.3(vitest@3.1.3(@types/node@22.15.16)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1))': + '@vitest/coverage-v8@3.1.3(vitest@3.1.3(@types/node@22.15.17)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -5093,7 +5093,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/node@22.15.16)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1) + vitest: 3.1.3(@types/node@22.15.17)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -5104,13 +5104,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.3(vite@6.3.5(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1))': + '@vitest/mocker@3.1.3(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.1.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) '@vitest/pretty-format@3.1.3': dependencies: @@ -5450,9 +5450,9 @@ snapshots: '@commitlint/types': 19.8.1 cspell-lib: 9.0.1 - commitlint@19.8.1(@types/node@22.15.16)(typescript@5.8.3): + commitlint@19.8.1(@types/node@22.15.17)(typescript@5.8.3): dependencies: - '@commitlint/cli': 19.8.1(@types/node@22.15.16)(typescript@5.8.3) + '@commitlint/cli': 19.8.1(@types/node@22.15.17)(typescript@5.8.3) '@commitlint/types': 19.8.1 transitivePeerDependencies: - '@types/node' @@ -5512,9 +5512,9 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@22.15.16)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@22.15.17)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@types/node': 22.15.16 + '@types/node': 22.15.17 cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 2.4.2 typescript: 5.8.3 @@ -7968,13 +7968,13 @@ snapshots: transitivePeerDependencies: - supports-color - vite-node@3.1.3(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1): + vite-node@3.1.3(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -7989,7 +7989,7 @@ snapshots: - tsx - yaml - vite@6.3.5(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1): + vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -7998,15 +7998,15 @@ snapshots: rollup: 4.40.2 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.15.16 + '@types/node': 22.15.17 fsevents: 2.3.3 jiti: 2.4.2 yaml: 2.7.1 - vitest@3.1.3(@types/node@22.15.16)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1): + vitest@3.1.3(@types/node@22.15.17)(jiti@2.4.2)(jsdom@26.1.0)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(vite@6.3.5(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1)) + '@vitest/mocker': 3.1.3(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.1.3 '@vitest/snapshot': 3.1.3 @@ -8023,11 +8023,11 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1) - vite-node: 3.1.3(@types/node@22.15.16)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) + vite-node: 3.1.3(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.15.16 + '@types/node': 22.15.17 jsdom: 26.1.0 transitivePeerDependencies: - jiti diff --git a/src/types/utils.ts b/src/types/utils.ts index d19fbd0..e8bf4f1 100644 --- a/src/types/utils.ts +++ b/src/types/utils.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types */ export type IfNever = [Type] extends [never] ? T : F; @@ -125,3 +125,25 @@ export type UnionOf = T extends [infer First, ...infer Rest export type Pretty = { [Property in keyof Type]: Type[Property]; } & unknown; + +export type Simplify = Type extends string + ? string + : Type extends number + ? number + : Type extends boolean + ? boolean + : Type extends bigint + ? bigint + : Type extends symbol + ? symbol + : Type extends undefined + ? undefined + : Type extends null + ? null + : Type extends Function + ? Type + : Type extends object + ? { + [Key in keyof Type]: Simplify; + } + : Type;