@gaganref/convex-api-keys 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../../src/component/sweep.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;;;;GAgCvB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;GAgC3B,CAAC"}
1
+ {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../../src/component/sweep.ts"],"names":[],"mappings":"AAiBA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;;;;GAgCvB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;GAgC3B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { internalMutation } from "./_generated/server.js";
2
2
  import { internal } from "./_generated/api.js";
3
3
  import { v } from "convex/values";
4
+ import { paginator } from "convex-helpers/server/pagination";
5
+ import schema from "./schema.js";
4
6
  const BATCH_SIZE = 100;
5
7
  function isIdleExpired(key, now) {
6
8
  return key.maxIdleMs !== undefined && key.lastUsedAt + key.maxIdleMs < now;
@@ -22,7 +24,7 @@ export const sweepExpired = internalMutation({
22
24
  }),
23
25
  handler: async (ctx, args) => {
24
26
  const now = Date.now();
25
- const result = await ctx.db
27
+ const result = await paginator(ctx.db, schema)
26
28
  .query("apiKeys")
27
29
  .withIndex("by_status", (q) => q.eq("status", "active"))
28
30
  .paginate({ numItems: BATCH_SIZE, cursor: args.cursor ?? null });
@@ -58,7 +60,7 @@ export const sweepIdleExpired = internalMutation({
58
60
  }),
59
61
  handler: async (ctx, args) => {
60
62
  const now = Date.now();
61
- const result = await ctx.db
63
+ const result = await paginator(ctx.db, schema)
62
64
  .query("apiKeys")
63
65
  .withIndex("by_status", (q) => q.eq("status", "active"))
64
66
  .paginate({ numItems: BATCH_SIZE, cursor: args.cursor ?? null });
@@ -1 +1 @@
1
- {"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../src/component/sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../src/component/sweep.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "bugs": {
7
7
  "url": "https://github.com/gaganref/convex-api-keys/issues"
8
8
  },
9
- "version": "0.1.0",
9
+ "version": "0.1.1",
10
10
  "license": "Apache-2.0",
11
11
  "keywords": [
12
12
  "convex",
@@ -203,7 +203,9 @@ describe("getKey", () => {
203
203
  expect(result.tokenPrefix).toBe(created.tokenPrefix);
204
204
  expect(result.status).toBe("active");
205
205
  expect(result.effectiveStatus).toBe("active");
206
- expect(result.createdAt).toBe(created.createdAt);
206
+ expect(Math.abs(result.createdAt - created.createdAt)).toBeLessThanOrEqual(
207
+ 5,
208
+ );
207
209
  expect(result.permissions?.api).toEqual(["read"]);
208
210
  });
209
211
 
@@ -3,6 +3,8 @@ import type { MutationCtx } from "./_generated/server.js";
3
3
  import { internal } from "./_generated/api.js";
4
4
  import { v } from "convex/values";
5
5
  import type { Id } from "./_generated/dataModel.js";
6
+ import { paginator } from "convex-helpers/server/pagination";
7
+ import schema from "./schema.js";
6
8
 
7
9
  const BATCH_SIZE = 100;
8
10
 
@@ -31,7 +33,7 @@ export const sweepExpired = internalMutation({
31
33
  handler: async (ctx, args) => {
32
34
  const now = Date.now();
33
35
 
34
- const result = await ctx.db
36
+ const result = await paginator(ctx.db, schema)
35
37
  .query("apiKeys")
36
38
  .withIndex("by_status", (q) => q.eq("status", "active"))
37
39
  .paginate({ numItems: BATCH_SIZE, cursor: args.cursor ?? null });
@@ -72,7 +74,7 @@ export const sweepIdleExpired = internalMutation({
72
74
  handler: async (ctx, args) => {
73
75
  const now = Date.now();
74
76
 
75
- const result = await ctx.db
77
+ const result = await paginator(ctx.db, schema)
76
78
  .query("apiKeys")
77
79
  .withIndex("by_status", (q) => q.eq("status", "active"))
78
80
  .paginate({ numItems: BATCH_SIZE, cursor: args.cursor ?? null });