diff --git a/integration-tests/legacy/package.json b/integration-tests/legacy/package.json index 85d0c4047..a3d470b55 100644 --- a/integration-tests/legacy/package.json +++ b/integration-tests/legacy/package.json @@ -16,7 +16,7 @@ "jest": "^29.5.0", "superjson": "^1.12.4", "ts-jest": "^29.1.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "dependencies": {} } diff --git a/integration-tests/lts/bench.ts b/integration-tests/lts/bench.ts index 256c11f2b..93b82ceef 100644 --- a/integration-tests/lts/bench.ts +++ b/integration-tests/lts/bench.ts @@ -1,43 +1,100 @@ import { bench } from "@arktype/attest"; import e from "./dbschema/edgeql-js"; +import { type BaseTypeToTsType } from "./dbschema/edgeql-js/typesystem"; -bench("scalar literal", () => { +bench("BaseTypeToTsType: scalar", () => { const lit = e.int32(42); + return {} as BaseTypeToTsType; +}).types([596, "instantiations"]); + +bench("e.literal: scalar", () => { + const lit = e.literal(e.int32, 42); + return {} as typeof lit; +}).types([755, "instantiations"]); + +bench("e.int32: scalar", () => { + const lit = e.int32(42); + return {} as typeof lit; +}).types([556, "instantiations"]); + +bench("e.str: scalar", () => { + const lit = e.str("abcd"); return {} as typeof lit; -}).types([555, "instantiations"]); +}).types([894, "instantiations"]); -bench("array literal", () => { +bench("BaseTypeToTsType: array literal", () => { + const lit = e.array([e.str("abcd")]); + return {} as BaseTypeToTsType; +}).types([2394, "instantiations"]); + +bench("e.literal: array literal", () => { const lit = e.literal(e.array(e.str), ["abcd"]); return {} as typeof lit; -}).types([2407, "instantiations"]); +}).types([1980, "instantiations"]); + +bench("e.array: array literal", () => { + const lit = e.array([e.str("abcd")]); + return {} as typeof lit; +}).types([2367, "instantiations"]); -bench("named tuple literal", () => { +bench("e.literal: named tuple literal", () => { const lit = e.literal(e.tuple({ str: e.str }), { str: "asdf", }); return {} as typeof lit; -}).types([11597, "instantiations"]); +}).types([10765, "instantiations"]); + +bench("e.tuple: named tuple literal", () => { + const lit = e.tuple({ str: e.str("asdf") }); + return {} as typeof lit; +}).types([7564, "instantiations"]); + +bench("e.literal: tuple literal", () => { + const lit = e.literal(e.tuple([e.str, e.int32]), ["asdf", 42]); + return {} as typeof lit; +}).types([4670, "instantiations"]); + +bench("e.tuple: tuple literal", () => { + const lit = e.tuple([e.str("asdf"), e.int32(42)]); + return {} as typeof lit; +}).types([4836, "instantiations"]); + +bench("e.literal: array of tuples", () => { + const lit = e.literal(e.array(e.tuple([e.str, e.int32])), [ + ["asdf", 42], + ["qwer", 43], + ]); + return {} as typeof lit; +}).types([5664, "instantiations"]); + +bench("e.array: array of tuples", () => { + const lit = e.array([ + e.tuple([e.str("asdf"), e.int32(42)]), + e.tuple([e.str("qwer"), e.int32(43)]), + ]); + return {} as typeof lit; +}).types([20582, "instantiations"]); bench("base type: array", () => { const baseType = e.array(e.str); return {} as typeof baseType; -}).types([348, "instantiations"]); +}).types([351, "instantiations"]); bench("base type: named tuple", () => { const baseType = e.tuple({ str: e.str }); return {} as typeof baseType; -}).types([2160, "instantiations"]); +}).types([3564, "instantiations"]); bench("select: scalar", () => { const query = e.select(e.int32(42)); return {} as typeof query; -}).types([1155, "instantiations"]); +}).types([1173, "instantiations"]); bench("select: free object", () => { const query = e.select({ meaning: e.int32(42) }); return {} as typeof query; -}).types([2012, "instantiations"]); +}).types([2027, "instantiations"]); bench("select: id only", () => { const query = e.select(e.User, () => ({ id: true })); @@ -49,7 +106,7 @@ bench("select: filtered", () => { filter_single: { id: e.uuid("123") }, })); return {} as typeof query; -}).types([5019, "instantiations"]); +}).types([5100, "instantiations"]); bench("select: nested", () => { const user = e.select(e.User, () => ({ @@ -58,7 +115,7 @@ bench("select: nested", () => { const query = e.select(user, () => ({ id: true })); return {} as typeof query; -}).types([6037, "instantiations"]); +}).types([6116, "instantiations"]); bench("select: complex", () => { const query = e.select(e.Movie, () => ({ @@ -70,7 +127,7 @@ bench("select: complex", () => { }), })); return {} as typeof query; -}).types([6342, "instantiations"]); +}).types([6352, "instantiations"]); bench("select: with filter", () => { const query = e.select(e.Hero, (hero) => ({ @@ -82,7 +139,7 @@ bench("select: with filter", () => { filter_single: e.op(hero.name, "=", "Peter Parker"), })); return {} as typeof query; -}).types([6289, "instantiations"]); +}).types([6428, "instantiations"]); bench("select: with order", () => { const query = e.select(e.Hero, (hero) => ({ @@ -95,7 +152,7 @@ bench("select: with order", () => { filter_single: e.op(hero.name, "=", "Peter Parker"), })); return {} as typeof query; -}).types([6624, "instantiations"]); +}).types([6765, "instantiations"]); bench("select: with limit", () => { const query = e.select(e.Hero, (hero) => ({ @@ -108,7 +165,7 @@ bench("select: with limit", () => { filter_single: e.op(hero.name, "=", "Peter Parker"), })); return {} as typeof query; -}).types([6352, "instantiations"]); +}).types([6490, "instantiations"]); bench("select: with offset", () => { const query = e.select(e.Hero, (hero) => ({ @@ -121,7 +178,7 @@ bench("select: with offset", () => { filter_single: e.op(hero.name, "=", "Peter Parker"), })); return {} as typeof query; -}).types([6391, "instantiations"]); +}).types([6533, "instantiations"]); bench("params select", () => { const query = e.params({ name: e.str }, (params) => @@ -135,4 +192,14 @@ bench("params select", () => { })) ); return {} as typeof query; -}).types([11865, "instantiations"]); +}).types([11290, "instantiations"]); + +bench("e.op: str = str", () => { + const op = e.op(e.str("a"), "=", e.str("b")); + return {} as typeof op; +}).types([1854, "instantiations"]); + +bench("e.op: str ilike str", () => { + const op = e.op(e.str("a"), "ilike", e.str("b")); + return {} as typeof op; +}).types([51413, "instantiations"]); diff --git a/integration-tests/lts/package.json b/integration-tests/lts/package.json index b11d5a6d4..18e7e3222 100644 --- a/integration-tests/lts/package.json +++ b/integration-tests/lts/package.json @@ -24,7 +24,7 @@ "jest": "^29.5.0", "superjson": "^1.12.4", "ts-jest": "^29.1.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "dependencies": {} } diff --git a/integration-tests/lts/select.test.ts b/integration-tests/lts/select.test.ts index 1abdb757f..2313c850e 100644 --- a/integration-tests/lts/select.test.ts +++ b/integration-tests/lts/select.test.ts @@ -1162,7 +1162,9 @@ SELECT __scope_0_defaultPerson { name: h.name, otherHeros: e.select(e.Hero, (h2) => ({ name: true, - names: e.op(h.name, "++", h2.name), + name_one: h.name, + name_two: h2.name, + names_match: e.op(h.name, "=", h2.name), order_by: h2.name, })), order_by: h.name, @@ -1176,7 +1178,9 @@ SELECT __scope_0_defaultPerson { name: h.name, otherHeros: heros.map((h2) => ({ name: h2.name, - names: h.name + h2.name, + name_one: h.name, + name_two: h2.name, + names_match: h.name === h2.name, })), })); @@ -1377,9 +1381,11 @@ SELECT __scope_0_defaultPerson { const result = await query.run(client); + type Result = typeof result; + tc.assert< tc.IsExact< - typeof result, + Result, { xy: { a: string | null; b: number | null } | null }[] > >(true); diff --git a/integration-tests/nightly/package.json b/integration-tests/nightly/package.json index de8ea7ad9..715d364c0 100644 --- a/integration-tests/nightly/package.json +++ b/integration-tests/nightly/package.json @@ -16,7 +16,7 @@ "jest": "^29.5.0", "superjson": "^1.12.4", "ts-jest": "^29.1.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "dependencies": {} } diff --git a/integration-tests/stable/package.json b/integration-tests/stable/package.json index 59f4c8f49..6a6923f4e 100644 --- a/integration-tests/stable/package.json +++ b/integration-tests/stable/package.json @@ -16,7 +16,7 @@ "jest": "^29.5.0", "superjson": "^1.12.4", "ts-jest": "^29.1.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "dependencies": {} } diff --git a/package.json b/package.json index aa0125ae7..d676762e5 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-plugin-prettier": "^2.3.0", - "typescript": "^5.2.2" + "typescript": "^5.4.2" }, "scripts": { "lint": "tslint 'packages/*/src/**/*.ts'", diff --git a/packages/auth-core/package.json b/packages/auth-core/package.json index 71fc8be47..a6dfc2738 100644 --- a/packages/auth-core/package.json +++ b/packages/auth-core/package.json @@ -37,7 +37,7 @@ "edgedb": "^1.4.0", "jest": "29.5.0", "ts-jest": "29.1.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "peerDependencies": { "edgedb": "^1.3.6" diff --git a/packages/auth-express/package.json b/packages/auth-express/package.json index b6b122295..19af6bdd2 100644 --- a/packages/auth-express/package.json +++ b/packages/auth-express/package.json @@ -31,7 +31,7 @@ "@types/node": "^20.8.4", "edgedb": "^1.3.6", "express": "^4.18.2", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "peerDependencies": { "cookie-parser": "^1.4.6", diff --git a/packages/auth-nextjs/package.json b/packages/auth-nextjs/package.json index 83bab2c99..b228dd096 100644 --- a/packages/auth-nextjs/package.json +++ b/packages/auth-nextjs/package.json @@ -27,13 +27,13 @@ "@types/react": "^18.2.42", "edgedb": "^1.3.6", "next": "13.5.6", - "typescript": "^5.2.2", - "react": "^18.2.0" + "react": "^18.2.0", + "typescript": "^5.4.3" }, "peerDependencies": { "edgedb": "^1.3.6", - "react": "^18.2.0", - "next": ">=13.5.6 <15.0.0" + "next": ">=13.5.6 <15.0.0", + "react": "^18.2.0" }, "dependencies": { "@edgedb/auth-core": "0.2.0-beta.1" diff --git a/packages/auth-remix/package.json b/packages/auth-remix/package.json index 03524b07d..ecff02ec2 100644 --- a/packages/auth-remix/package.json +++ b/packages/auth-remix/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@types/node": "^20.8.4", "edgedb": "^1.4.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "peerDependencies": { "edgedb": "^1.3.6" diff --git a/packages/auth-sveltekit/package.json b/packages/auth-sveltekit/package.json index b774802cd..97cc22680 100644 --- a/packages/auth-sveltekit/package.json +++ b/packages/auth-sveltekit/package.json @@ -19,11 +19,11 @@ "build": "tsc --project tsconfig.json" }, "devDependencies": { + "@sveltejs/kit": "^2.0.0", "@types/node": "^20.8.4", "edgedb": "^1.3.6", - "typescript": "^5.2.2", "svelte": "^4.2.7", - "@sveltejs/kit": "^2.0.0", + "typescript": "^5.4.3", "vite": "^5.0.3" }, "peerDependencies": { diff --git a/packages/create/package.json b/packages/create/package.json index 3c63a8fe3..afb4e1984 100644 --- a/packages/create/package.json +++ b/packages/create/package.json @@ -23,7 +23,7 @@ "@types/debug": "^4.1.12", "@types/node": "^20.10.4", "tsx": "^4.6.2", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "dependencies": { "@clack/prompts": "^0.7.0", diff --git a/packages/driver/package.json b/packages/driver/package.json index a3400eec3..f97f7a2fe 100644 --- a/packages/driver/package.json +++ b/packages/driver/package.json @@ -34,7 +34,7 @@ "jest-environment-jsdom": "^29.5.0", "ts-jest": "29.1.0", "tsx": "^3.12.7", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "scripts": { "typecheck": "tsc --project tsconfig.json --noEmit", diff --git a/packages/generate/package.json b/packages/generate/package.json index f6bd8deb9..9cb43e7a5 100644 --- a/packages/generate/package.json +++ b/packages/generate/package.json @@ -31,7 +31,7 @@ "jest": "^29.5.0", "superjson": "^1.12.4", "ts-jest": "^29.1.0", - "typescript": "^5.2.2" + "typescript": "^5.4.3" }, "dependencies": {}, "scripts": { diff --git a/packages/generate/src/syntax/literal.ts b/packages/generate/src/syntax/literal.ts index a94bac382..b2398d440 100644 --- a/packages/generate/src/syntax/literal.ts +++ b/packages/generate/src/syntax/literal.ts @@ -27,16 +27,17 @@ export type $expr_Literal = Expression<{ __value__: any; }>; -export function literal( - type: T, - value: BaseTypeToTsType -): $expr_Literal { +export function literal< + T extends BaseType, + TsType extends BaseTypeToTsType = BaseTypeToTsType, + ExprType extends $expr_Literal = $expr_Literal +>(type: T, value: TsType): ExprType { return $expressionify({ __element__: type, __cardinality__: Cardinality.One, __kind__: ExpressionKind.Literal, __value__: value, - }) as any; + }) as ExprType; } export const $nameMapping = new Map([ diff --git a/packages/generate/src/syntax/path.ts b/packages/generate/src/syntax/path.ts index 0e03b98c0..73961d106 100644 --- a/packages/generate/src/syntax/path.ts +++ b/packages/generate/src/syntax/path.ts @@ -77,9 +77,9 @@ export type $pathify< // Parent extends PathParent | null = null > = Root extends ObjectTypeSet ? ObjectTypeSet extends Root - ? {} // Root is literally ObjectTypeSet + ? unknown // Root is literally ObjectTypeSet : pathifyPointers & pathifyShape & $linkPropify - : {}; // pathify does nothing on non-object types + : unknown; // pathify does nothing on non-object types export type pathifyPointers< Root extends ObjectTypeSet diff --git a/packages/generate/src/syntax/select.ts b/packages/generate/src/syntax/select.ts index 9d4cfd099..bc2636e5f 100644 --- a/packages/generate/src/syntax/select.ts +++ b/packages/generate/src/syntax/select.ts @@ -382,16 +382,14 @@ export type ComputeSelectCardinality< export function is< Expr extends ObjectTypeExpression, - Shape extends objectTypeToSelectShape ->( - expr: Expr, - shape: Shape -): { - [k in Exclude< - keyof Shape, - SelectModifierNames | "id" - >]: $expr_PolyShapeElement>; -} { + Shape extends objectTypeToSelectShape, + ReturnT extends { + [k in Exclude< + keyof Shape, + SelectModifierNames | "id" + >]: $expr_PolyShapeElement>; + } +>(expr: Expr, shape: Shape): ReturnT { const mappedShape: any = {}; for (const [key, value] of Object.entries(shape)) { if (key === "id") continue; diff --git a/packages/generate/src/syntax/typesystem.ts b/packages/generate/src/syntax/typesystem.ts index aa2ea5115..cced1e43c 100644 --- a/packages/generate/src/syntax/typesystem.ts +++ b/packages/generate/src/syntax/typesystem.ts @@ -54,35 +54,26 @@ export type scalarTypeWithConstructor< >; }; -type $jsonDestructure = - Set["__element__"] extends ScalarType<"std::json"> - ? { - [path: string]: $expr_Operator< - // "[]", - // OperatorKind.Infix, - // [Set, TypeSet], - // TypeSet< - Set["__element__"], - Set["__cardinality__"] - // > - >; - } & { - destructure> | string>( - path: T - ): $expr_Operator< - // "[]", - // OperatorKind.Infix, - // [Set, TypeSet], - // TypeSet< - Set["__element__"], - cardutil.multiplyCardinalities< - Set["__cardinality__"], - T extends TypeSet ? T["__cardinality__"] : Cardinality.One - > - // > - >; - } - : unknown; +type $jsonDestructure = Set extends TypeSet< + ScalarType<"std::json"> +> + ? { + [path: string]: $expr_Operator< + Set["__element__"], + Set["__cardinality__"] + >; + } & { + destructure> | string>( + path: T + ): $expr_Operator< + Set["__element__"], + cardutil.multiplyCardinalities< + Set["__cardinality__"], + T extends TypeSet ? T["__cardinality__"] : Cardinality.One + > + >; + } + : unknown; //////////////////// // SETS AND EXPRESSIONS @@ -127,7 +118,7 @@ export type Expression< run(cxn: Executor): Promise>; runJSON(cxn: Executor): Promise; } - : {}) & + : unknown) & $tuplePathify & $arrayLikeIndexify & $jsonDestructure); @@ -390,13 +381,6 @@ export type computeObjectShape< } >; -export type pointerToTsTypeSimple = - El extends PropertyDesc - ? propToTsType - : El extends LinkDesc - ? { id: string } - : never; - export type PrimitiveType = | ScalarType | EnumType @@ -497,7 +481,6 @@ type $arrayLikeIndexify = Set["__element__"] extends >; } : unknown; - export type $expr_Array< Type extends ArrayType = ArrayType, Card extends Cardinality = Cardinality @@ -518,14 +501,11 @@ export interface ArrayType< __element__: Element; } -type ArrayTypeToTsType< - Type extends ArrayType, - isParam extends boolean = false -> = BaseTypeToTsType extends infer TsType - ? isParam extends true - ? readonly TsType[] - : TsType[] - : never; +interface BaseArrayType extends BaseType { + __name__: string; + __kind__: TypeKind.array; + __element__: BaseType; +} ///////////////////////// /// TUPLE TYPE @@ -598,9 +578,7 @@ type TupleItemsToTsType< Items extends BaseTypeTuple, isParam extends boolean = false > = { - [k in keyof Items]: Items[k] extends BaseType - ? BaseTypeToTsType - : never; + [k in keyof Items]: BaseTypeToTsType; }; ///////////////////////// @@ -654,13 +632,11 @@ export interface NamedTupleType type NamedTupleTypeToTsType< Type extends NamedTupleType, - isParam extends boolean = false -> = { - [k in keyof Type["__shape__"]]: BaseTypeToTsType< - Type["__shape__"][k], - isParam - >; -}; + isParam extends boolean = false, + Shape extends NamedTupleShape = Type["__shape__"] +> = typeutil.flatten<{ + [k in keyof Shape]: BaseTypeToTsType; +}>; ///////////////////////// /// RANGE TYPE @@ -697,16 +673,28 @@ export type orLiteralValue = ? never : computeTsType); +type ScalarTypeToTsType< + T extends ScalarType, + isParam extends boolean +> = isParam extends true ? T["__tsargtype__"] : T["__tsconsttype__"]; + +type ArrayTypeToTsType< + Type extends BaseArrayType, + isParam extends boolean +> = isParam extends true + ? readonly BaseTypeToTsType[] + : BaseTypeToTsType[]; + export type BaseTypeToTsType< Type extends BaseType, isParam extends boolean = false -> = Type extends ScalarType - ? isParam extends true - ? Type["__tsargtype__"] - : Type["__tsconsttype__"] +> = BaseType extends Type + ? unknown + : Type extends ScalarType + ? ScalarTypeToTsType : Type extends EnumType ? Type["__tstype__"] - : Type extends ArrayType + : Type extends BaseArrayType ? ArrayTypeToTsType : Type extends RangeType ? Range @@ -715,11 +703,9 @@ export type BaseTypeToTsType< : Type extends TupleType ? TupleItemsToTsType : Type extends NamedTupleType - ? typeutil.flatten> + ? NamedTupleTypeToTsType : Type extends ObjectType - ? typeutil.flatten< - computeObjectShape - > + ? computeObjectShape : never; export type setToTsType = computeTsType< @@ -727,10 +713,7 @@ export type setToTsType = computeTsType< Set["__cardinality__"] >; -export type computeTsTypeCard< - T extends any, - C extends Cardinality -> = Cardinality extends C +export type computeTsTypeCard = Cardinality extends C ? unknown : C extends Cardinality.Empty ? null @@ -751,24 +734,11 @@ export type computeTsType< C extends Cardinality > = BaseType extends T ? unknown : computeTsTypeCard, C>; -export type propToTsType = Prop extends PropertyDesc< - infer Type, - infer Card -> - ? setToTsType> - : never; - -export type linkToTsType = computeTsType< - Link["target"], - Link["cardinality"] ->; - -export type pointerToTsType = - El extends PropertyDesc - ? propToTsType - : El extends LinkDesc - ? linkToTsType - : never; +export type pointerToTsType< + El extends PropertyDesc | LinkDesc, + T extends BaseType = El["target"], + C extends Cardinality = El["cardinality"] +> = computeTsType; /////////////////// // TYPE HELPERS diff --git a/yarn.lock b/yarn.lock index 2ac0b0257..df2640e3a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1157,12 +1157,12 @@ "@next/env@13.5.6": version "13.5.6" - resolved "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.6.tgz#c1148e2e1aa166614f05161ee8f77ded467062bc" integrity sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw== "@next/swc-darwin-arm64@13.5.6": version "13.5.6" - resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz#b15d139d8971360fca29be3bdd703c108c9a45fb" integrity sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA== "@next/swc-darwin-x64@13.5.6": @@ -2036,9 +2036,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001406: - version "1.0.30001554" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz" - integrity sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ== + version "1.0.30001597" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz#8be94a8c1d679de23b22fbd944232aa1321639e6" + integrity sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w== caniuse-lite@^1.0.30001449: version "1.0.30001481" @@ -2982,7 +2982,7 @@ glob-parent@^6.0.2: glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: @@ -4078,7 +4078,7 @@ negotiator@0.6.3: next@13.5.6: version "13.5.6" - resolved "https://registry.npmjs.org/next/-/next-13.5.6.tgz" + resolved "https://registry.yarnpkg.com/next/-/next-13.5.6.tgz#e964b5853272236c37ce0dd2c68302973cf010b1" integrity sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw== dependencies: "@next/env" "13.5.6" @@ -5110,10 +5110,15 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +typescript@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" + integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== + +typescript@^5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" + integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== undici-types@~5.26.4: version "5.26.5" @@ -5217,7 +5222,7 @@ walker@^1.0.8: watchpack@2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1"