mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
@types/bun: Update to @types/node@25, fallback to PropertyKey in test expect matchers when keyof unknown is used (#25460)
more accurately, developers cannot pass a value when expect values resolve to never. this is easy to fall into when using the `toContainKey*` matchers. falling back to PropertyKey when this happens is a sensible/reasonable default ### What does this PR do? fixes #25456, cc @MonsterDeveloper fixes #25461 ### How did you verify your code works? bun types integration test
This commit is contained in:
3
bun.lock
3
bun.lock
@@ -36,6 +36,7 @@
|
|||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"@types/bun": "workspace:packages/@types/bun",
|
"@types/bun": "workspace:packages/@types/bun",
|
||||||
|
"@types/node": "25.0.0",
|
||||||
"bun-types": "workspace:packages/bun-types",
|
"bun-types": "workspace:packages/bun-types",
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
@@ -155,7 +156,7 @@
|
|||||||
|
|
||||||
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
|
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
|
||||||
|
|
||||||
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
|
"@types/node": ["@types/node@25.0.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew=="],
|
||||||
|
|
||||||
"aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="],
|
"aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="],
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,8 @@
|
|||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"bun-types": "workspace:packages/bun-types",
|
"bun-types": "workspace:packages/bun-types",
|
||||||
"@types/bun": "workspace:packages/@types/bun"
|
"@types/bun": "workspace:packages/@types/bun",
|
||||||
|
"@types/node": "25.0.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "bun --silent run build:debug",
|
"build": "bun --silent run build:debug",
|
||||||
|
|||||||
17
packages/bun-types/globals.d.ts
vendored
17
packages/bun-types/globals.d.ts
vendored
@@ -1,9 +1,12 @@
|
|||||||
declare module "bun" {
|
declare module "bun" {
|
||||||
namespace __internal {
|
namespace __internal {
|
||||||
type NodeCryptoWebcryptoSubtleCrypto = import("crypto").webcrypto.SubtleCrypto;
|
|
||||||
type NodeCryptoWebcryptoCryptoKey = import("crypto").webcrypto.CryptoKey;
|
type NodeCryptoWebcryptoCryptoKey = import("crypto").webcrypto.CryptoKey;
|
||||||
type NodeCryptoWebcryptoCryptoKeyPair = import("crypto").webcrypto.CryptoKeyPair;
|
type NodeCryptoWebcryptoCryptoKeyPair = import("crypto").webcrypto.CryptoKeyPair;
|
||||||
|
|
||||||
|
type LibEmptyOrNodeCryptoWebcryptoSubtleCrypto = LibDomIsLoaded extends true
|
||||||
|
? {}
|
||||||
|
: import("crypto").webcrypto.SubtleCrypto;
|
||||||
|
|
||||||
type LibWorkerOrBunWorker = LibDomIsLoaded extends true ? {} : Bun.Worker;
|
type LibWorkerOrBunWorker = LibDomIsLoaded extends true ? {} : Bun.Worker;
|
||||||
type LibEmptyOrBunWebSocket = LibDomIsLoaded extends true ? {} : Bun.WebSocket;
|
type LibEmptyOrBunWebSocket = LibDomIsLoaded extends true ? {} : Bun.WebSocket;
|
||||||
|
|
||||||
@@ -14,7 +17,9 @@ declare module "bun" {
|
|||||||
? {}
|
? {}
|
||||||
: import("node:stream/web").DecompressionStream;
|
: import("node:stream/web").DecompressionStream;
|
||||||
|
|
||||||
type LibPerformanceOrNodePerfHooksPerformance = LibDomIsLoaded extends true ? {} : import("perf_hooks").Performance;
|
type LibPerformanceOrNodePerfHooksPerformance = LibDomIsLoaded extends true
|
||||||
|
? {}
|
||||||
|
: import("node:perf_hooks").Performance;
|
||||||
type LibEmptyOrPerformanceEntry = LibDomIsLoaded extends true ? {} : import("node:perf_hooks").PerformanceEntry;
|
type LibEmptyOrPerformanceEntry = LibDomIsLoaded extends true ? {} : import("node:perf_hooks").PerformanceEntry;
|
||||||
type LibEmptyOrPerformanceMark = LibDomIsLoaded extends true ? {} : import("node:perf_hooks").PerformanceMark;
|
type LibEmptyOrPerformanceMark = LibDomIsLoaded extends true ? {} : import("node:perf_hooks").PerformanceMark;
|
||||||
type LibEmptyOrPerformanceMeasure = LibDomIsLoaded extends true ? {} : import("node:perf_hooks").PerformanceMeasure;
|
type LibEmptyOrPerformanceMeasure = LibDomIsLoaded extends true ? {} : import("node:perf_hooks").PerformanceMeasure;
|
||||||
@@ -224,7 +229,7 @@ interface TextEncoder extends Bun.__internal.LibEmptyOrNodeUtilTextEncoder {
|
|||||||
* @param src The text to encode.
|
* @param src The text to encode.
|
||||||
* @param dest The array to hold the encode result.
|
* @param dest The array to hold the encode result.
|
||||||
*/
|
*/
|
||||||
encodeInto(src?: string, dest?: Bun.BufferSource): import("util").EncodeIntoResult;
|
encodeInto(src?: string, dest?: Bun.BufferSource): import("node:util").TextEncoderEncodeIntoResult;
|
||||||
}
|
}
|
||||||
declare var TextEncoder: Bun.__internal.UseLibDomIfAvailable<
|
declare var TextEncoder: Bun.__internal.UseLibDomIfAvailable<
|
||||||
"TextEncoder",
|
"TextEncoder",
|
||||||
@@ -952,7 +957,7 @@ declare function alert(message?: string): void;
|
|||||||
declare function confirm(message?: string): boolean;
|
declare function confirm(message?: string): boolean;
|
||||||
declare function prompt(message?: string, _default?: string): string | null;
|
declare function prompt(message?: string, _default?: string): string | null;
|
||||||
|
|
||||||
interface SubtleCrypto extends Bun.__internal.NodeCryptoWebcryptoSubtleCrypto {}
|
interface SubtleCrypto extends Bun.__internal.LibEmptyOrNodeCryptoWebcryptoSubtleCrypto {}
|
||||||
declare var SubtleCrypto: {
|
declare var SubtleCrypto: {
|
||||||
prototype: SubtleCrypto;
|
prototype: SubtleCrypto;
|
||||||
new (): SubtleCrypto;
|
new (): SubtleCrypto;
|
||||||
@@ -1688,6 +1693,10 @@ declare var EventSource: Bun.__internal.UseLibDomIfAvailable<
|
|||||||
|
|
||||||
interface Performance extends Bun.__internal.LibPerformanceOrNodePerfHooksPerformance {}
|
interface Performance extends Bun.__internal.LibPerformanceOrNodePerfHooksPerformance {}
|
||||||
declare var performance: Bun.__internal.UseLibDomIfAvailable<"performance", Performance>;
|
declare var performance: Bun.__internal.UseLibDomIfAvailable<"performance", Performance>;
|
||||||
|
declare var Performance: Bun.__internal.UseLibDomIfAvailable<
|
||||||
|
"Performance",
|
||||||
|
{ new (): Performance; prototype: Performance }
|
||||||
|
>;
|
||||||
|
|
||||||
interface PerformanceEntry extends Bun.__internal.LibEmptyOrPerformanceEntry {}
|
interface PerformanceEntry extends Bun.__internal.LibEmptyOrPerformanceEntry {}
|
||||||
declare var PerformanceEntry: Bun.__internal.UseLibDomIfAvailable<
|
declare var PerformanceEntry: Bun.__internal.UseLibDomIfAvailable<
|
||||||
|
|||||||
19
packages/bun-types/overrides.d.ts
vendored
19
packages/bun-types/overrides.d.ts
vendored
@@ -308,11 +308,11 @@ declare global {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module "fs/promises" {
|
declare module "node:fs/promises" {
|
||||||
function exists(path: Bun.PathLike): Promise<boolean>;
|
function exists(path: Bun.PathLike): Promise<boolean>;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module "tls" {
|
declare module "node:tls" {
|
||||||
interface BunConnectionOptions extends Omit<ConnectionOptions, "key" | "ca" | "tls" | "cert"> {
|
interface BunConnectionOptions extends Omit<ConnectionOptions, "key" | "ca" | "tls" | "cert"> {
|
||||||
/**
|
/**
|
||||||
* Optionally override the trusted CA certificates. Default is to trust
|
* Optionally override the trusted CA certificates. Default is to trust
|
||||||
@@ -359,3 +359,18 @@ declare module "tls" {
|
|||||||
|
|
||||||
function connect(options: BunConnectionOptions, secureConnectListener?: () => void): TLSSocket;
|
function connect(options: BunConnectionOptions, secureConnectListener?: () => void): TLSSocket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare module "console" {
|
||||||
|
interface Console {
|
||||||
|
/**
|
||||||
|
* Asynchronously read lines from standard input (fd 0)
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* for await (const line of console) {
|
||||||
|
* console.log(line);
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
[Symbol.asyncIterator](): AsyncIterableIterator<string>;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
18
packages/bun-types/test.d.ts
vendored
18
packages/bun-types/test.d.ts
vendored
@@ -428,6 +428,8 @@ declare module "bun:test" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace __internal {
|
namespace __internal {
|
||||||
|
type IfNeverThenElse<T, Else> = [T] extends [never] ? Else : T;
|
||||||
|
|
||||||
type IsTuple<T> = T extends readonly unknown[]
|
type IsTuple<T> = T extends readonly unknown[]
|
||||||
? number extends T["length"]
|
? number extends T["length"]
|
||||||
? false // It's an array with unknown length, not a tuple
|
? false // It's an array with unknown length, not a tuple
|
||||||
@@ -1097,8 +1099,8 @@ declare module "bun:test" {
|
|||||||
*
|
*
|
||||||
* @param expected the expected value
|
* @param expected the expected value
|
||||||
*/
|
*/
|
||||||
toContainKey(expected: keyof T): void;
|
toContainKey(expected: __internal.IfNeverThenElse<keyof T, PropertyKey>): void;
|
||||||
toContainKey<X = T>(expected: NoInfer<keyof X>): void;
|
toContainKey<X = T>(expected: __internal.IfNeverThenElse<NoInfer<keyof X>, PropertyKey>): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that an `object` contains all the provided keys.
|
* Asserts that an `object` contains all the provided keys.
|
||||||
@@ -1114,8 +1116,8 @@ declare module "bun:test" {
|
|||||||
*
|
*
|
||||||
* @param expected the expected value
|
* @param expected the expected value
|
||||||
*/
|
*/
|
||||||
toContainAllKeys(expected: Array<keyof T>): void;
|
toContainAllKeys(expected: Array<__internal.IfNeverThenElse<keyof T, PropertyKey>>): void;
|
||||||
toContainAllKeys<X = T>(expected: NoInfer<Array<keyof X>>): void;
|
toContainAllKeys<X = T>(expected: Array<__internal.IfNeverThenElse<NoInfer<keyof X>, PropertyKey>>): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that an `object` contains at least one of the provided keys.
|
* Asserts that an `object` contains at least one of the provided keys.
|
||||||
@@ -1131,8 +1133,8 @@ declare module "bun:test" {
|
|||||||
*
|
*
|
||||||
* @param expected the expected value
|
* @param expected the expected value
|
||||||
*/
|
*/
|
||||||
toContainAnyKeys(expected: Array<keyof T>): void;
|
toContainAnyKeys(expected: Array<__internal.IfNeverThenElse<keyof T, PropertyKey>>): void;
|
||||||
toContainAnyKeys<X = T>(expected: NoInfer<Array<keyof X>>): void;
|
toContainAnyKeys<X = T>(expected: Array<__internal.IfNeverThenElse<NoInfer<keyof X>, PropertyKey>>): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that an `object` contain the provided value.
|
* Asserts that an `object` contain the provided value.
|
||||||
@@ -1224,8 +1226,8 @@ declare module "bun:test" {
|
|||||||
*
|
*
|
||||||
* @param expected the expected value
|
* @param expected the expected value
|
||||||
*/
|
*/
|
||||||
toContainKeys(expected: Array<keyof T>): void;
|
toContainKeys(expected: Array<__internal.IfNeverThenElse<keyof T, PropertyKey>>): void;
|
||||||
toContainKeys<X = T>(expected: NoInfer<Array<keyof X>>): void;
|
toContainKeys<X = T>(expected: Array<__internal.IfNeverThenElse<NoInfer<keyof X>, PropertyKey>>): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that a value contains and equals what is expected.
|
* Asserts that a value contains and equals what is expected.
|
||||||
|
|||||||
@@ -120,6 +120,7 @@
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
"@types/node": "25.0.0",
|
||||||
"react": "../node_modules/react",
|
"react": "../node_modules/react",
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
@@ -711,7 +712,7 @@
|
|||||||
|
|
||||||
"@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="],
|
"@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="],
|
||||||
|
|
||||||
"@types/node": ["@types/node@20.14.6", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw=="],
|
"@types/node": ["@types/node@25.0.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew=="],
|
||||||
|
|
||||||
"@types/oboe": ["@types/oboe@2.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-bXt4BXSQy0N/buSIak1o0TjYAk2SAeK1aZV9xKcb+xVGWYP8NcMOFy2T7Um3kIvEcQJzrdgJ8R6fpbRcp/LEww=="],
|
"@types/oboe": ["@types/oboe@2.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-bXt4BXSQy0N/buSIak1o0TjYAk2SAeK1aZV9xKcb+xVGWYP8NcMOFy2T7Um3kIvEcQJzrdgJ8R6fpbRcp/LEww=="],
|
||||||
|
|
||||||
@@ -2561,7 +2562,7 @@
|
|||||||
|
|
||||||
"undici": ["undici@5.20.0", "", { "dependencies": { "busboy": "^1.6.0" } }, "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g=="],
|
"undici": ["undici@5.20.0", "", { "dependencies": { "busboy": "^1.6.0" } }, "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g=="],
|
||||||
|
|
||||||
"undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="],
|
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
||||||
|
|
||||||
"unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="],
|
"unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="],
|
||||||
|
|
||||||
@@ -2863,7 +2864,7 @@
|
|||||||
|
|
||||||
"@remix-run/react/@remix-run/server-runtime": ["@remix-run/server-runtime@2.10.3", "", { "dependencies": { "@remix-run/router": "1.18.0", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", "set-cookie-parser": "^2.4.8", "source-map": "^0.7.3", "turbo-stream": "2.2.0" }, "peerDependencies": { "typescript": "^5.1.0" }, "optionalPeers": ["typescript"] }, "sha512-vUl5jONUI6Lj0ICg9FSRFhoPzQdZ/7dpT1m7ID13DF5BEeF3t/9uCJS61XXWgQ/JEu7YRiwvZiwSRTrgM7zeWw=="],
|
"@remix-run/react/@remix-run/server-runtime": ["@remix-run/server-runtime@2.10.3", "", { "dependencies": { "@remix-run/router": "1.18.0", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", "set-cookie-parser": "^2.4.8", "source-map": "^0.7.3", "turbo-stream": "2.2.0" }, "peerDependencies": { "typescript": "^5.1.0" }, "optionalPeers": ["typescript"] }, "sha512-vUl5jONUI6Lj0ICg9FSRFhoPzQdZ/7dpT1m7ID13DF5BEeF3t/9uCJS61XXWgQ/JEu7YRiwvZiwSRTrgM7zeWw=="],
|
||||||
|
|
||||||
"@remix-run/react/react": ["react@file:../node_modules/react", { "dependencies": { "loose-envify": "^1.1.0" } }],
|
"@remix-run/react/react": ["react@file:../node_modules/react", {}],
|
||||||
|
|
||||||
"@remix-run/serve/@remix-run/node": ["@remix-run/node@2.10.3", "", { "dependencies": { "@remix-run/server-runtime": "2.10.3", "@remix-run/web-fetch": "^4.4.2", "@web3-storage/multipart-parser": "^1.0.0", "cookie-signature": "^1.1.0", "source-map-support": "^0.5.21", "stream-slice": "^0.1.2", "undici": "^6.11.1" }, "peerDependencies": { "typescript": "^5.1.0" }, "optionalPeers": ["typescript"] }, "sha512-LBqsgADJKW7tYdJZZi2wu20gfMm6UcOXbvb5U70P2jCNxjJvuIw1gXVvNXRJKAdxPKLonjm8cSpfoI6HeQKEDg=="],
|
"@remix-run/serve/@remix-run/node": ["@remix-run/node@2.10.3", "", { "dependencies": { "@remix-run/server-runtime": "2.10.3", "@remix-run/web-fetch": "^4.4.2", "@web3-storage/multipart-parser": "^1.0.0", "cookie-signature": "^1.1.0", "source-map-support": "^0.5.21", "stream-slice": "^0.1.2", "undici": "^6.11.1" }, "peerDependencies": { "typescript": "^5.1.0" }, "optionalPeers": ["typescript"] }, "sha512-LBqsgADJKW7tYdJZZi2wu20gfMm6UcOXbvb5U70P2jCNxjJvuIw1gXVvNXRJKAdxPKLonjm8cSpfoI6HeQKEDg=="],
|
||||||
|
|
||||||
@@ -2885,7 +2886,7 @@
|
|||||||
|
|
||||||
"@testing-library/dom/dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="],
|
"@testing-library/dom/dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="],
|
||||||
|
|
||||||
"@testing-library/react/react": ["react@file:../node_modules/react", { "dependencies": { "loose-envify": "^1.1.0" } }],
|
"@testing-library/react/react": ["react@file:../node_modules/react", {}],
|
||||||
|
|
||||||
"@types/eslint/@types/estree": ["@types/estree@1.0.5", "", {}, "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="],
|
"@types/eslint/@types/estree": ["@types/estree@1.0.5", "", {}, "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="],
|
||||||
|
|
||||||
@@ -3125,8 +3126,6 @@
|
|||||||
|
|
||||||
"https-proxy-agent/debug": ["debug@4.3.5", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg=="],
|
"https-proxy-agent/debug": ["debug@4.3.5", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg=="],
|
||||||
|
|
||||||
"image-q/@types/node": ["@types/node@16.9.1", "", {}, "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="],
|
|
||||||
|
|
||||||
"import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
|
"import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
|
||||||
|
|
||||||
"jest-diff/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
"jest-diff/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
||||||
@@ -3249,11 +3248,11 @@
|
|||||||
|
|
||||||
"raw-body/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="],
|
"raw-body/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="],
|
||||||
|
|
||||||
"react-dom/react": ["react@file:../node_modules/react", { "dependencies": { "loose-envify": "^1.1.0" } }],
|
"react-dom/react": ["react@file:../node_modules/react", {}],
|
||||||
|
|
||||||
"react-router/react": ["react@file:../node_modules/react", { "dependencies": { "loose-envify": "^1.1.0" } }],
|
"react-router/react": ["react@file:../node_modules/react", {}],
|
||||||
|
|
||||||
"react-router-dom/react": ["react@file:../node_modules/react", { "dependencies": { "loose-envify": "^1.1.0" } }],
|
"react-router-dom/react": ["react@file:../node_modules/react", {}],
|
||||||
|
|
||||||
"readable-web-to-node-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
|
"readable-web-to-node-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
|
||||||
|
|
||||||
@@ -3373,8 +3372,6 @@
|
|||||||
|
|
||||||
"upper-case-first/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
"upper-case-first/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||||
|
|
||||||
"v8-heapsnapshot/@types/node": ["@types/node@18.19.69", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-ECPdY1nlaiO/Y6GUnwgtAAhLNaQ53AyIVz+eILxpEo5OvuqE6yWkqWBIb5dU0DqhKQtMeny+FBD3PK6lm7L5xQ=="],
|
|
||||||
|
|
||||||
"verdaccio/@verdaccio/config": ["@verdaccio/config@8.0.0-next-8.1", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.1", "@verdaccio/utils": "7.0.1-next-8.1", "debug": "4.3.7", "js-yaml": "4.1.0", "lodash": "4.17.21", "minimatch": "7.4.6" } }, "sha512-goDVOH4e8xMUxjHybJpi5HwIecVFqzJ9jeNFrRUgtUUn0PtFuNMHgxOeqDKRVboZhc5HK90yed8URK/1O6VsUw=="],
|
"verdaccio/@verdaccio/config": ["@verdaccio/config@8.0.0-next-8.1", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.1", "@verdaccio/utils": "7.0.1-next-8.1", "debug": "4.3.7", "js-yaml": "4.1.0", "lodash": "4.17.21", "minimatch": "7.4.6" } }, "sha512-goDVOH4e8xMUxjHybJpi5HwIecVFqzJ9jeNFrRUgtUUn0PtFuNMHgxOeqDKRVboZhc5HK90yed8URK/1O6VsUw=="],
|
||||||
|
|
||||||
"verdaccio/@verdaccio/core": ["@verdaccio/core@8.0.0-next-8.1", "", { "dependencies": { "ajv": "8.17.1", "core-js": "3.37.1", "http-errors": "2.0.0", "http-status-codes": "2.3.0", "process-warning": "1.0.0", "semver": "7.6.3" } }, "sha512-kQRCB2wgXEh8H88G51eQgAFK9IxmnBtkQ8sY5FbmB6PbBkyHrbGcCp+2mtRqqo36j0W1VAlfM3XzoknMy6qQnw=="],
|
"verdaccio/@verdaccio/core": ["@verdaccio/core@8.0.0-next-8.1", "", { "dependencies": { "ajv": "8.17.1", "core-js": "3.37.1", "http-errors": "2.0.0", "http-status-codes": "2.3.0", "process-warning": "1.0.0", "semver": "7.6.3" } }, "sha512-kQRCB2wgXEh8H88G51eQgAFK9IxmnBtkQ8sY5FbmB6PbBkyHrbGcCp+2mtRqqo36j0W1VAlfM3XzoknMy6qQnw=="],
|
||||||
|
|||||||
@@ -253,7 +253,10 @@ afterAll(async () => {
|
|||||||
if (TEMP_DIR) {
|
if (TEMP_DIR) {
|
||||||
if (Bun.env.TYPES_INTEGRATION_TEST_KEEP_TEMP_DIR === "true") {
|
if (Bun.env.TYPES_INTEGRATION_TEST_KEEP_TEMP_DIR === "true") {
|
||||||
console.log(`Keeping temp dir ${TEMP_DIR}/fixture for debugging`);
|
console.log(`Keeping temp dir ${TEMP_DIR}/fixture for debugging`);
|
||||||
await cp(TSCONFIG_SOURCE_PATH, join(TEMP_DIR, "fixture", "tsconfig.json"));
|
// Write tsconfig with skipLibCheck disabled for proper type checking
|
||||||
|
const tsconfig = structuredClone(sourceTsconfig);
|
||||||
|
tsconfig.compilerOptions.skipLibCheck = false;
|
||||||
|
await Bun.write(join(TEMP_DIR, "fixture", "tsconfig.json"), JSON.stringify(tsconfig, null, 2));
|
||||||
} else {
|
} else {
|
||||||
await rm(TEMP_DIR, { recursive: true, force: true });
|
await rm(TEMP_DIR, { recursive: true, force: true });
|
||||||
}
|
}
|
||||||
@@ -435,7 +438,7 @@ describe("@types/bun integration test", () => {
|
|||||||
code: 2322,
|
code: 2322,
|
||||||
line: "24154.ts:11:3",
|
line: "24154.ts:11:3",
|
||||||
message:
|
message:
|
||||||
"Type 'Blob' is not assignable to type 'import(\"buffer\").Blob'.\nThe types returned by 'stream()' are incompatible between these types.\nType 'ReadableStream<Uint8Array<ArrayBuffer>>' is missing the following properties from type 'ReadableStream<any>': blob, text, bytes, json",
|
"Type 'Blob' is not assignable to type 'import(\"node:buffer\").Blob'.\nThe types returned by 'stream()' are incompatible between these types.\nType 'ReadableStream<Uint8Array<ArrayBuffer>>' is missing the following properties from type 'ReadableStream<NonSharedUint8Array>': blob, text, bytes, json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
code: 2769,
|
code: 2769,
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ async () => {
|
|||||||
for await (const line of c2) {
|
for await (const line of c2) {
|
||||||
console.log("Received:", line);
|
console.log("Received:", line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// tslint:disable-next-line:await-promise
|
// tslint:disable-next-line:await-promise
|
||||||
for await (const line of console) {
|
for await (const line of console) {
|
||||||
console.log("Received:", line);
|
console.log("Received:", line);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
expect,
|
expect,
|
||||||
expectTypeOf,
|
expectTypeOf,
|
||||||
jest,
|
jest,
|
||||||
|
type Matchers,
|
||||||
mock,
|
mock,
|
||||||
type Mock,
|
type Mock,
|
||||||
spyOn,
|
spyOn,
|
||||||
@@ -244,32 +245,39 @@ describe("Matcher Overload Type Tests", () => {
|
|||||||
|
|
||||||
test("toContainKey", () => {
|
test("toContainKey", () => {
|
||||||
expect(obj).toContainKey("a");
|
expect(obj).toContainKey("a");
|
||||||
|
expect(obj).toContainKey("b");
|
||||||
|
// @ts-expect-error simple check for key does not exist
|
||||||
|
expect(obj).toContainKey("c");
|
||||||
expect(obj).toContainKey(10); // object key is number
|
expect(obj).toContainKey(10); // object key is number
|
||||||
// @ts-expect-error - Argument of type '"c"' is not assignable to parameter of type 'number | "a" | "b"'.
|
// @ts-expect-error - Argument of type '"c"' is not assignable to parameter of type 'number | "a" | "b"'.
|
||||||
expect(obj).toContainKey<keyof typeof obj>("c");
|
expect(obj).toContainKey<typeof obj>("c");
|
||||||
// @ts-expect-error - Argument of type 'boolean' is not assignable to parameter of type 'string | number'.
|
// @ts-expect-error - Argument of type 'boolean' is not assignable to parameter of type 'string | number'.
|
||||||
expect(obj).toContainKey<keyof typeof obj>(true);
|
expect(obj).toContainKey<typeof obj>(true);
|
||||||
// @ts-expect-error - Too many arguments for specific overload
|
// @ts-expect-error - Too many arguments for specific overload
|
||||||
expect(obj).toContainKey<keyof typeof obj>("a", "b");
|
expect(obj).toContainKey<typeof obj>("a", "b");
|
||||||
// @ts-expect-error - Argument of type 'symbol' is not assignable to parameter of type 'string | number'.
|
// @ts-expect-error - Argument of type 'symbol' is not assignable to parameter of type 'string | number'.
|
||||||
expect(obj).toContainKey<keyof typeof obj>(Symbol("a"));
|
expect(obj).toContainKey<typeof obj>(Symbol("a"));
|
||||||
});
|
});
|
||||||
|
|
||||||
test("toContainAllKeys", () => {
|
test("toContainAllKeys", () => {
|
||||||
expect(obj).toContainAllKeys(["a", "b"]);
|
expect(obj).toContainAllKeys(["a", "b"]);
|
||||||
expect(obj).toContainAllKeys([10, "a"]);
|
expect(obj).toContainAllKeys([10, "a"]);
|
||||||
|
// @ts-expect-error simple check for key does not exist
|
||||||
|
expect(obj).toContainAllKeys(["c"]);
|
||||||
// @ts-expect-error - Type '"c"' is not assignable to type 'number | "a" | "b"'.
|
// @ts-expect-error - Type '"c"' is not assignable to type 'number | "a" | "b"'.
|
||||||
expect(obj).toContainAllKeys<(keyof typeof obj)[]>(["a", "c"]);
|
expect(obj).toContainAllKeys<(typeof obj)[]>(["a", "c"]);
|
||||||
// @ts-expect-error - Type 'boolean' is not assignable to type 'string | number'.
|
// @ts-expect-error - Type 'boolean' is not assignable to type 'string | number'.
|
||||||
expect(obj).toContainAllKeys<(keyof typeof obj)[]>(["a", true]);
|
expect(obj).toContainAllKeys<(typeof obj)[]>(["a", true]);
|
||||||
// @ts-expect-error - Argument must be an array
|
// @ts-expect-error - Argument must be an array
|
||||||
expect(obj).toContainAllKeys<Array<keyof typeof obj>>("a");
|
expect(obj).toContainAllKeys<Array<typeof obj>>("a");
|
||||||
// @ts-expect-error - Array element type 'symbol' is not assignable to 'string | number'.
|
// @ts-expect-error - Array element type 'symbol' is not assignable to 'string | number'.
|
||||||
expect(obj).toContainAllKeys<(keyof typeof obj)[]>(["a", Symbol("b")]);
|
expect(obj).toContainAllKeys<(typeof obj)[]>(["a", Symbol("b")]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("toContainAnyKeys", () => {
|
test("toContainAnyKeys", () => {
|
||||||
expect(obj).toContainAnyKeys(["a", "b", 10]);
|
expect(obj).toContainAnyKeys(["a", "b", 10]);
|
||||||
|
// @ts-expect-error simple check for key does not exist
|
||||||
|
expect(obj).toContainAnyKeys(["c"]);
|
||||||
// @ts-expect-error - 11 is not a key
|
// @ts-expect-error - 11 is not a key
|
||||||
expect(obj).toContainAnyKeys(["a", "b", 11]);
|
expect(obj).toContainAnyKeys(["a", "b", 11]);
|
||||||
// @ts-expect-error - c is not a key
|
// @ts-expect-error - c is not a key
|
||||||
@@ -277,27 +285,29 @@ describe("Matcher Overload Type Tests", () => {
|
|||||||
// @ts-expect-error d is not a key
|
// @ts-expect-error d is not a key
|
||||||
expect(obj).toContainAnyKeys([10, "d"]);
|
expect(obj).toContainAnyKeys([10, "d"]);
|
||||||
// @ts-expect-error - Type '"c"' is not assignable to type 'number | "a" | "b"'. Type '"d"' is not assignable to type 'number | "a" | "b"'.
|
// @ts-expect-error - Type '"c"' is not assignable to type 'number | "a" | "b"'. Type '"d"' is not assignable to type 'number | "a" | "b"'.
|
||||||
expect(obj).toContainAnyKeys<(keyof typeof obj)[]>(["c", "d"]);
|
expect(obj).toContainAnyKeys<(typeof obj)[]>(["c", "d"]);
|
||||||
// @ts-expect-error - Type 'boolean' is not assignable to type 'string | number'.
|
// @ts-expect-error - Type 'boolean' is not assignable to type 'string | number'.
|
||||||
expect(obj).toContainAnyKeys<(keyof typeof obj)[]>([true, false]);
|
expect(obj).toContainAnyKeys<(typeof obj)[]>([true, false]);
|
||||||
// @ts-expect-error - Argument must be an array
|
// @ts-expect-error - Argument must be an array
|
||||||
expect(obj).toContainAnyKeys<Array<keyof typeof obj>>("a");
|
expect(obj).toContainAnyKeys<Array<typeof obj>>("a");
|
||||||
// @ts-expect-error - Array element type 'symbol' is not assignable to 'string | number'.
|
// @ts-expect-error - Array element type 'symbol' is not assignable to 'string | number'.
|
||||||
expect(obj).toContainAnyKeys<(keyof typeof obj)[]>([Symbol("a")]);
|
expect(obj).toContainAnyKeys<(typeof obj)[]>([Symbol("a")]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("toContainKeys", () => {
|
test("toContainKeys", () => {
|
||||||
// Alias for toContainAllKeys
|
// Alias for toContainAllKeys
|
||||||
expect(obj).toContainKeys(["a", "b"]);
|
expect(obj).toContainKeys(["a", "b"]);
|
||||||
expect(obj).toContainKeys([10, "a"]);
|
expect(obj).toContainKeys([10, "a"]);
|
||||||
|
// @ts-expect-error simple check for key does not exist
|
||||||
|
expect(obj).toContainKeys(["c"]);
|
||||||
// @ts-expect-error - Type '"c"' is not assignable to type 'number | "a" | "b"'.
|
// @ts-expect-error - Type '"c"' is not assignable to type 'number | "a" | "b"'.
|
||||||
expect(obj).toContainKeys<(keyof typeof obj)[]>(["a", "c"]);
|
expect(obj).toContainKeys<(typeof obj)[]>(["a", "c"]);
|
||||||
// @ts-expect-error - Type 'boolean' is not assignable to type 'string | number'.
|
// @ts-expect-error - Type 'boolean' is not assignable to type 'string | number'.
|
||||||
expect(obj).toContainKeys<(keyof typeof obj)[]>(["a", true]);
|
expect(obj).toContainKeys<(typeof obj)[]>(["a", true]);
|
||||||
// @ts-expect-error - Argument must be an array
|
// @ts-expect-error - Argument must be an array
|
||||||
expect(obj).toContainKeys<Array<keyof typeof obj>>("a");
|
expect(obj).toContainKeys<Array<typeof obj>>("a");
|
||||||
// @ts-expect-error - Array element type 'symbol' is not assignable to 'string | number'.
|
// @ts-expect-error - Array element type 'symbol' is not assignable to 'string | number'.
|
||||||
expect(obj).toContainKeys<(keyof typeof obj)[]>(["a", Symbol("b")]);
|
expect(obj).toContainKeys<(typeof obj)[]>(["a", Symbol("b")]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("toContainEqual", () => {
|
test("toContainEqual", () => {
|
||||||
@@ -334,7 +344,7 @@ myNormalSpiedMethod("asdf");
|
|||||||
expectType<Mock<(name: string) => string>>(myNormalSpiedMethod);
|
expectType<Mock<(name: string) => string>>(myNormalSpiedMethod);
|
||||||
|
|
||||||
const spy = spyOn(console, "log");
|
const spy = spyOn(console, "log");
|
||||||
expectType(spy.mock.calls).is<[message?: any, ...optionalParams: any[]][]>();
|
expectType(spy.mock.calls).is<any[][]>();
|
||||||
|
|
||||||
jest.spyOn(console, "log");
|
jest.spyOn(console, "log");
|
||||||
jest.fn(() => 123 as const);
|
jest.fn(() => 123 as const);
|
||||||
@@ -400,3 +410,14 @@ declare const setOfStrings: Set<string>;
|
|||||||
/** 1. **/ expect(setOfStrings).toBe(new Set()); // this is inferrable to Set<string> so this should pass
|
/** 1. **/ expect(setOfStrings).toBe(new Set()); // this is inferrable to Set<string> so this should pass
|
||||||
/** 2. **/ expect(setOfStrings).toBe(new Set<string>()); // exact, so we are happy!
|
/** 2. **/ expect(setOfStrings).toBe(new Set<string>()); // exact, so we are happy!
|
||||||
/** 3. **/ expect(setOfStrings).toBe<Set<string>>(new Set()); // happy! We opted out of type safety for this expectation
|
/** 3. **/ expect(setOfStrings).toBe<Set<string>>(new Set()); // happy! We opted out of type safety for this expectation
|
||||||
|
|
||||||
|
// Cases for #24591
|
||||||
|
declare const unknownMatchers: Matchers<unknown>;
|
||||||
|
unknownMatchers.toContainKeys(["a", "b"]);
|
||||||
|
unknownMatchers.toContainAnyKeys(["a", "b"]);
|
||||||
|
unknownMatchers.toContainAllKeys(["a", "b"]);
|
||||||
|
unknownMatchers.toContainKey("a");
|
||||||
|
unknownMatchers.toContainEqual([""]);
|
||||||
|
unknownMatchers.toEqual(["a", "b"]);
|
||||||
|
unknownMatchers.toBeCloseTo(2);
|
||||||
|
unknownMatchers.toBe("a");
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"": {
|
"": {
|
||||||
"name": "default-create-template",
|
"name": "default-create-template",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "24.2.1",
|
"@types/node": "25.0.0",
|
||||||
"@types/react": "19.1.9",
|
"@types/react": "19.1.9",
|
||||||
"@types/react-dom": "19.1.7",
|
"@types/react-dom": "19.1.7",
|
||||||
"autoprefixer": "10.4.21",
|
"autoprefixer": "10.4.21",
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
|
|
||||||
"@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="],
|
"@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="],
|
||||||
|
|
||||||
"@types/node": ["@types/node@24.2.1", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ=="],
|
"@types/node": ["@types/node@25.0.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew=="],
|
||||||
|
|
||||||
"@types/react": ["@types/react@19.1.9", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA=="],
|
"@types/react": ["@types/react@19.1.9", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA=="],
|
||||||
|
|
||||||
@@ -931,7 +931,7 @@
|
|||||||
|
|
||||||
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
|
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
|
||||||
|
|
||||||
"undici-types": ["undici-types@7.10.0", "", {}, "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag=="],
|
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
||||||
|
|
||||||
"unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="],
|
"unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="],
|
||||||
|
|
||||||
@@ -989,12 +989,16 @@
|
|||||||
|
|
||||||
"@puppeteer/browsers/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
|
"@puppeteer/browsers/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
|
||||||
|
|
||||||
|
"@types/yauzl/@types/node": ["@types/node@24.2.1", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ=="],
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
|
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
|
"@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
|
||||||
|
|
||||||
|
"bun-types/@types/node": ["@types/node@24.2.1", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ=="],
|
||||||
|
|
||||||
"chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
"chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
||||||
|
|
||||||
"eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="],
|
"eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="],
|
||||||
@@ -1031,8 +1035,12 @@
|
|||||||
|
|
||||||
"@next/eslint-plugin-next/fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
"@next/eslint-plugin-next/fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
||||||
|
|
||||||
|
"@types/yauzl/@types/node/undici-types": ["undici-types@7.10.0", "", {}, "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag=="],
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
||||||
|
|
||||||
|
"bun-types/@types/node/undici-types": ["undici-types@7.10.0", "", {}, "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag=="],
|
||||||
|
|
||||||
"glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
"glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"postinstall": "cd node_modules/puppeteer && bun install.mjs"
|
"postinstall": "cd node_modules/puppeteer && bun install.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "24.2.1",
|
"@types/node": "25.0.0",
|
||||||
"@types/react": "19.1.9",
|
"@types/react": "19.1.9",
|
||||||
"@types/react-dom": "19.1.7",
|
"@types/react-dom": "19.1.7",
|
||||||
"autoprefixer": "10.4.21",
|
"autoprefixer": "10.4.21",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3",
|
"@eslint/eslintrc": "^3",
|
||||||
"@tailwindcss/postcss": "^4",
|
"@tailwindcss/postcss": "^4",
|
||||||
"@types/node": "^20",
|
"@types/node": "25.0.0",
|
||||||
"@types/react": "^19",
|
"@types/react": "^19",
|
||||||
"@types/react-dom": "^19",
|
"@types/react-dom": "^19",
|
||||||
"eslint": "^9",
|
"eslint": "^9",
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
|
|
||||||
"@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="],
|
"@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="],
|
||||||
|
|
||||||
"@types/node": ["@types/node@20.17.36", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-Tg//WZ9Jk/vhzB5AhL/8nW+2IwHGLN0nhh/gvIEDqBhVJ+ST930PoQASdHTjuZG/k57LghpPa5RopUGf4wVdFA=="],
|
"@types/node": ["@types/node@25.0.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew=="],
|
||||||
|
|
||||||
"@types/react": ["@types/react@19.1.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw=="],
|
"@types/react": ["@types/react@19.1.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw=="],
|
||||||
|
|
||||||
@@ -854,7 +854,7 @@
|
|||||||
|
|
||||||
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
|
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
|
||||||
|
|
||||||
"undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="],
|
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
||||||
|
|
||||||
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
|
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3",
|
"@eslint/eslintrc": "^3",
|
||||||
"@tailwindcss/postcss": "^4",
|
"@tailwindcss/postcss": "^4",
|
||||||
"@types/node": "^20",
|
"@types/node": "25.0.0",
|
||||||
"@types/react": "^19",
|
"@types/react": "^19",
|
||||||
"@types/react-dom": "^19",
|
"@types/react-dom": "^19",
|
||||||
"eslint": "^9",
|
"eslint": "^9",
|
||||||
|
|||||||
@@ -120,6 +120,7 @@
|
|||||||
"bd": "BUN_DEBUG_QUIET_LOGS=1 bun --silent bd:v"
|
"bd": "BUN_DEBUG_QUIET_LOGS=1 bun --silent bd:v"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"react": "../node_modules/react"
|
"react": "../node_modules/react",
|
||||||
|
"@types/node": "25.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user