From abdd72e2408ef0f5445a910a2d304b8cce99a92d Mon Sep 17 00:00:00 2001 From: Lee Danilek Date: Thu, 6 Mar 2025 11:17:09 -0500 Subject: [PATCH 1/2] assert that offset is an integer --- src/component/btree.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/component/btree.ts b/src/component/btree.ts index 933c370..d640a9b 100644 --- a/src/component/btree.ts +++ b/src/component/btree.ts @@ -372,6 +372,12 @@ export async function atOffsetHandler( ctx: { db: DatabaseReader }, args: { offset: number; k1?: Key; k2?: Key; namespace?: Namespace } ) { + if (args.offset < 0) { + throw new Error("offset must be non-negative"); + } + if (args.offset !== Math.floor(args.offset)) { + throw new Error("offset must be an integer"); + } const tree = await getTree(ctx.db, args.namespace); if (tree === null) { throw new ConvexError("tree is empty"); @@ -394,6 +400,12 @@ export async function atNegativeOffsetHandler( ctx: { db: DatabaseReader }, args: { offset: number; k1?: Key; k2?: Key; namespace?: Namespace } ) { + if (args.offset < 0) { + throw new Error("offset must be non-negative"); + } + if (args.offset !== Math.floor(args.offset)) { + throw new Error("offset must be an integer"); + } const tree = await getTree(ctx.db, args.namespace); if (tree === null) { throw new ConvexError("tree is empty"); From f9b662e11954c46b42cb0702d96f4c5c3ef599b0 Mon Sep 17 00:00:00 2001 From: Lee Danilek Date: Fri, 7 Mar 2025 14:23:58 -0500 Subject: [PATCH 2/2] . --- src/component/btree.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/component/btree.ts b/src/component/btree.ts index d640a9b..a9d60a2 100644 --- a/src/component/btree.ts +++ b/src/component/btree.ts @@ -375,7 +375,7 @@ export async function atOffsetHandler( if (args.offset < 0) { throw new Error("offset must be non-negative"); } - if (args.offset !== Math.floor(args.offset)) { + if (!Number.isInteger(args.offset)) { throw new Error("offset must be an integer"); } const tree = await getTree(ctx.db, args.namespace); @@ -403,7 +403,7 @@ export async function atNegativeOffsetHandler( if (args.offset < 0) { throw new Error("offset must be non-negative"); } - if (args.offset !== Math.floor(args.offset)) { + if (!Number.isInteger(args.offset)) { throw new Error("offset must be an integer"); } const tree = await getTree(ctx.db, args.namespace);