@convex-dev/crons 0.2.0 → 0.2.2

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,7 +1,7 @@
1
1
  import { type FunctionArgs, type SchedulableFunctionReference } from "convex/server";
2
2
  import type { ComponentApi } from "../component/_generated/component.js";
3
3
  import type { CronInfo, Schedule } from "../component/public.js";
4
- import type { RunMutationCtx, RunQueryCtx } from "./utils.js";
4
+ import type { ActionCtx, MutationCtx, QueryCtx } from "./utils.js";
5
5
  export type { CronInfo };
6
6
  export declare class Crons {
7
7
  private component;
@@ -57,20 +57,20 @@ export declare class Crons {
57
57
  * provided and a cron with the same name already exists.
58
58
  * @returns A string identifier for the cron job.
59
59
  */
60
- register<F extends SchedulableFunctionReference>(ctx: RunMutationCtx, schedule: Schedule, func: F, args: FunctionArgs<F>, name?: string): Promise<string>;
60
+ register<F extends SchedulableFunctionReference>(ctx: MutationCtx | ActionCtx, schedule: Schedule, func: F, args: FunctionArgs<F>, name?: string): Promise<string>;
61
61
  /**
62
62
  * List all user space cron jobs.
63
63
  *
64
64
  * @returns List of `cron` table rows.
65
65
  */
66
- list(ctx: RunQueryCtx): Promise<CronInfo[]>;
66
+ list(ctx: QueryCtx | MutationCtx | ActionCtx): Promise<CronInfo[]>;
67
67
  /**
68
68
  * Get an existing cron job by id or name.
69
69
  *
70
70
  * @param identifier - Either the ID or name of the cron job.
71
71
  * @returns Cron job document.
72
72
  */
73
- get(ctx: RunQueryCtx, identifier: {
73
+ get(ctx: QueryCtx | MutationCtx | ActionCtx, identifier: {
74
74
  id: string;
75
75
  } | {
76
76
  name: string;
@@ -80,7 +80,7 @@ export declare class Crons {
80
80
  *
81
81
  * @param identifier - Either the ID or name of the cron job.
82
82
  */
83
- delete(ctx: RunMutationCtx, identifier: {
83
+ delete(ctx: MutationCtx | ActionCtx, identifier: {
84
84
  id: string;
85
85
  } | {
86
86
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,4BAA4B,EAClC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,qBAAa,KAAK;IAwCJ,OAAO,CAAC,SAAS;IAvC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;gBACiB,SAAS,EAAE,YAAY;IAE3C;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,CAAC,SAAS,4BAA4B,EACnD,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IASlB;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUjD;;;;;OAKG;IACG,GAAG,CACP,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAa3B;;;;OAIG;IACG,MAAM,CACV,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC;CAGjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,4BAA4B,EAClC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,qBAAa,KAAK;IAwCJ,OAAO,CAAC,SAAS;IAvC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;gBACiB,SAAS,EAAE,YAAY;IAE3C;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,CAAC,SAAS,4BAA4B,EACnD,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IASlB;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUxE;;;;;OAKG;IACG,GAAG,CACP,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,EACvC,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAa3B;;;;OAIG;IACG,MAAM,CACV,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC;CAGjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EACL,oBAAoB,GAIrB,MAAM,eAAe,CAAC;AAOvB,MAAM,OAAO,KAAK;IAwCI;IAvCpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACZ,GAAmB,EACnB,QAAkB,EAClB,IAAO,EACP,IAAqB,EACrB,IAAa;QAEb,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;YACrD,IAAI;YACJ,QAAQ;YACR,cAAc,EAAE,MAAM,oBAAoB,CAAC,IAAI,CAAC;YAChD,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,GAAgB;QACzB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,IAAI;YACP,cAAc,EAAE,IAAI,CAAC,cAEpB;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,GAAgB,EAChB,UAA6C;QAE7C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,GAAG,IAAI;YACP,cAAc,EAAE,IAAI,CAAC,cAEpB;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,GAAmB,EACnB,UAA6C;QAE7C,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EACL,oBAAoB,GAIrB,MAAM,eAAe,CAAC;AAOvB,MAAM,OAAO,KAAK;IAwCI;IAvCpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACZ,GAA4B,EAC5B,QAAkB,EAClB,IAAO,EACP,IAAqB,EACrB,IAAa;QAEb,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;YACrD,IAAI;YACJ,QAAQ;YACR,cAAc,EAAE,MAAM,oBAAoB,CAAC,IAAI,CAAC;YAChD,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,GAAuC;QAChD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,IAAI;YACP,cAAc,EAAE,IAAI,CAAC,cAEpB;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,GAAuC,EACvC,UAA6C;QAE7C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,GAAG,IAAI;YACP,cAAc,EAAE,IAAI,CAAC,cAEpB;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,GAA4B,EAC5B,UAA6C;QAE7C,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -1,8 +1,5 @@
1
- import type { GenericDataModel, GenericMutationCtx, GenericQueryCtx } from "convex/server";
2
- export type RunQueryCtx = {
3
- runQuery: GenericQueryCtx<GenericDataModel>["runQuery"];
4
- };
5
- export type RunMutationCtx = {
6
- runMutation: GenericMutationCtx<GenericDataModel>["runMutation"];
7
- };
1
+ import type { GenericActionCtx, GenericDataModel, GenericMutationCtx, GenericQueryCtx } from "convex/server";
2
+ export type QueryCtx = Pick<GenericQueryCtx<GenericDataModel>, "runQuery">;
3
+ export type MutationCtx = Pick<GenericMutationCtx<GenericDataModel>, "runQuery" | "runMutation">;
4
+ export type ActionCtx = Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation" | "runAction">;
8
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/client/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;CACzD,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;CAClE,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/client/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,kBAAkB,CAAC,gBAAgB,CAAC,EACpC,UAAU,GAAG,aAAa,CAC3B,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,IAAI,CAC1B,gBAAgB,CAAC,gBAAgB,CAAC,EAClC,UAAU,GAAG,aAAa,GAAG,WAAW,CACzC,CAAC"}
@@ -25,7 +25,7 @@ export type Doc<TableName extends TableNames> = DocumentByName<DataModel, TableN
25
25
  * Convex documents are uniquely identified by their `Id`, which is accessible
26
26
  * on the `_id` field. To learn more, see [Document IDs](https://docs.convex.dev/using/document-ids).
27
27
  *
28
- * Documents can be loaded using `db.get(id)` in query and mutation functions.
28
+ * Documents can be loaded using `db.get(tableName, id)` in query and mutation functions.
29
29
  *
30
30
  * IDs are just strings at runtime, but this type can be used to distinguish them from other
31
31
  * strings when type checking.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/server.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAUvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAgB,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,SAAS,EAAE,UAAU,CACxC,CAAC;AAEvB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAmB,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,SAAS,EAAE,UAAU,CAC3C,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAiB,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,CACzC,CAAC;AAExB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,iBAAqC,CAAC;AAO/D;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/server.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAUvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAgB,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,SAAS,EAAE,UAAU,CACxC,CAAC;AAEvB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAmB,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,SAAS,EAAE,UAAU,CAC3C,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAiB,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,CACzC,CAAC;AAExB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,iBAAqC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- declare const _default: import("convex/server").ComponentDefinition<any>;
1
+ declare const _default: import("convex/server").ComponentDefinition<any, {}>;
2
2
  export default _default;
3
3
  //# sourceMappingURL=convex.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,MAAM,MAAM,QAAQ,GAChB;IACE,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACE,oDAAoD;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAGN,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AASF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;uDAiCnB,CAAC;AA0CH;;;;GAIG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;KAaf,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;UAyBd,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,GAAG;;;;;;iBAoCd,CAAC;AASH,eAAO,MAAM,WAAW;;iBA4DtB,CAAC"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,MAAM,MAAM,QAAQ,GAChB;IACE,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACE,oDAAoD;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAGN,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AASF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;uDAiCnB,CAAC;AA0CH;;;;GAIG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;KAaf,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;UAyBd,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,GAAG;;;;;;iBAoCd,CAAC;AASH,eAAO,MAAM,WAAW;;iBAmEtB,CAAC"}
@@ -70,7 +70,7 @@ function validateSchedule(schedule) {
70
70
  async function scheduleNextRun(ctx, id, lastScheduled, schedule) {
71
71
  const nextRun = calculateNextRun(lastScheduled, schedule);
72
72
  const schedulerJobId = await ctx.scheduler.runAt(nextRun, internal.public.rescheduler, { id });
73
- await ctx.db.patch(id, { schedulerJobId });
73
+ await ctx.db.patch("crons", id, { schedulerJobId });
74
74
  }
75
75
  function calculateNextRun(lastScheduled, schedule) {
76
76
  if (schedule.kind === "interval") {
@@ -116,7 +116,7 @@ export const get = query({
116
116
  returns: v.union(cronInfoValidator, v.null()),
117
117
  handler: async (ctx, { identifier }) => {
118
118
  const cron = "id" in identifier
119
- ? await ctx.db.get(identifier.id)
119
+ ? await ctx.db.get("crons", identifier.id)
120
120
  : await ctx.db
121
121
  .query("crons")
122
122
  .withIndex("name", (q) => q.eq("name", identifier.name))
@@ -145,7 +145,7 @@ export const del = mutation({
145
145
  handler: async (ctx, { identifier }) => {
146
146
  let cron;
147
147
  if ("id" in identifier) {
148
- cron = await ctx.db.get(identifier.id);
148
+ cron = await ctx.db.get("crons", identifier.id);
149
149
  if (!cron) {
150
150
  throw new Error(`Cron ${identifier.id} not found`);
151
151
  }
@@ -169,7 +169,7 @@ export const del = mutation({
169
169
  await ctx.scheduler.cancel(cron.executionJobId);
170
170
  }
171
171
  console.log(`Deleting cron ${cron._id}`);
172
- await ctx.db.delete(cron._id);
172
+ await ctx.db.delete("crons", cron._id);
173
173
  },
174
174
  });
175
175
  // Continue rescheduling a cron job.
@@ -186,7 +186,7 @@ export const rescheduler = internalMutation({
186
186
  returns: v.null(),
187
187
  handler: async (ctx, { id }) => {
188
188
  // Cron job is the logical concept we're rescheduling repeatedly.
189
- const cronJob = await ctx.db.get(id);
189
+ const cronJob = await ctx.db.get("crons", id);
190
190
  if (!cronJob) {
191
191
  throw Error(`Cron ${id} not found`);
192
192
  }
@@ -195,7 +195,7 @@ export const rescheduler = internalMutation({
195
195
  }
196
196
  // Scheduler job is the job that's running right now, that we use to trigger
197
197
  // repeated executions.
198
- const schedulerJob = await ctx.db.system.get(cronJob.schedulerJobId);
198
+ const schedulerJob = await ctx.db.system.get("_scheduled_functions", cronJob.schedulerJobId);
199
199
  if (!schedulerJob) {
200
200
  throw Error(`Scheduler job ${cronJob.schedulerJobId} not found`);
201
201
  }
@@ -206,7 +206,7 @@ export const rescheduler = internalMutation({
206
206
  // Execution job is the previous job used to actually do the work of the cron.
207
207
  let stillRunning = false;
208
208
  if (cronJob.executionJobId) {
209
- const executionJob = await ctx.db.system.get(cronJob.executionJobId);
209
+ const executionJob = await ctx.db.system.get("_scheduled_functions", cronJob.executionJobId);
210
210
  if (executionJob &&
211
211
  (executionJob.state.kind === "pending" ||
212
212
  executionJob.state.kind === "inProgress")) {
@@ -218,7 +218,8 @@ export const rescheduler = internalMutation({
218
218
  }
219
219
  else {
220
220
  console.log(`Running cron ${cronJob._id}.`);
221
- await ctx.scheduler.runAfter(0, cronJob.functionHandle, cronJob.args);
221
+ const executionJobId = await ctx.scheduler.runAfter(0, cronJob.functionHandle, cronJob.args);
222
+ await ctx.db.patch("crons", id, { executionJobId });
222
223
  }
223
224
  await scheduleNextRun(ctx, id, new Date(schedulerJob.scheduledTime), cronJob.schedule);
224
225
  },
@@ -1 +1 @@
1
- {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,6CAA6C;AAG7C,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAEL,QAAQ,EACR,KAAK,EACL,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AA8BjC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AASxE,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACnC,QAAQ,EAAE,iBAAiB;CAC5B,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,QAAQ,EAAE,iBAAiB;QAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;KACpC;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;IACtB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/D,IACE,IAAI;YACJ,CAAC,MAAM,GAAG,CAAC,EAAE;iBACV,KAAK,CAAC,OAAO,CAAC;iBACd,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBAC5C,MAAM,EAAE,CAAC,EACZ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,kBAAkB,CAAC,CAAC;QAC7D,CAAC;QACD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE3B,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;YACtC,cAAc;YACd,IAAI;YACJ,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,oBAAoB,IAAI,MAAM,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC5E,CAAC;QAEF,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAgB,EAChB,EAAe,EACf,aAAmB,EACnB,QAAkB;IAElB,MAAM,OAAO,GAAG,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAC9C,OAAO,EACP,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,EAAE,EAAE,EAAE,CACP,CAAC;IACF,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,aAAmB,EAAE,QAAkB;IAC/D,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrD,WAAW,EAAE,aAAa;YAC1B,EAAE,EAAE,QAAQ,CAAC,EAAE;SAChB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACnC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;IACvB,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,CAAC,KAAK,CACjB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAC/B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B;KACF;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACrC,MAAM,IAAI,GACR,IAAI,IAAI,UAAU;YAChB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1C,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;iBACT,KAAK,CAAC,OAAO,CAAC;iBACd,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;iBACvD,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,CAAC,KAAK,CACjB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAC/B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B;KACF;IACD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACrC,IAAI,IAAyB,CAAC;QAC9B,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;YACvB,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,QAAQ,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;iBAChB,KAAK,CAAC,OAAO,CAAC;iBACd,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;iBACvD,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,CAAC,IAAI,aAAa,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;CACF,CAAC,CAAC;AAEH,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;IAC1C,IAAI,EAAE;QACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;KAClB;IACD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7B,iEAAiE;QACjE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QAED,4EAA4E;QAC5E,uBAAuB;QACvB,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAC1C,sBAAsB,EACtB,OAAO,CAAC,cAAc,CACvB,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,iBAAiB,OAAO,CAAC,cAAc,YAAY,CAAC,CAAC;QACnE,CAAC;QACD,IACE,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YACrC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EACxC,CAAC;YACD,MAAM,KAAK,CACT,yBAAyB,YAAY,CAAC,GAAG,iBAAiB,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,8EAA8E;QAC9E,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAC1C,sBAAsB,EACtB,OAAO,CAAC,cAAc,CACvB,CAAC;YACF,IACE,YAAY;gBACZ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBACpC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,EAC3C,CAAC;gBACD,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,GAAG,oCAAoC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CACjD,CAAC,EACD,OAAO,CAAC,cAAuD,EAC/D,OAAO,CAAC,IAAI,CACb,CAAC;YACF,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,eAAe,CACnB,GAAG,EACH,EAAE,EACF,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EACpC,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@convex-dev/crons",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Convex component for scheduling periodic jobs.",
5
5
  "keywords": [
6
6
  "convex",
@@ -22,24 +22,23 @@
22
22
  "src"
23
23
  ],
24
24
  "scripts": {
25
- "dev": "run-p -r 'dev:*'",
26
- "dev:backend": "convex dev --typecheck-components",
25
+ "dev": "convex dev --start 'npm run dev:build'",
27
26
  "dev:frontend": "cd example && vite --clearScreen false",
28
- "dev:build": "chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'convex codegen --component-dir ./src/component && npm run build' --initial",
29
- "predev": "npm run dev:backend -- --until-success",
30
- "clean": "rm -rf dist *.tsbuildinfo",
27
+ "dev:build": "chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial",
28
+ "predev": "convex init && npm run build:codegen",
31
29
  "build": "tsc --project ./tsconfig.build.json",
30
+ "build:codegen": "npx convex codegen --component-dir ./src/component && npm run build",
31
+ "build:clean": "rm -rf dist *.tsbuildinfo && npm run build:codegen",
32
32
  "typecheck": "tsc --noEmit && tsc -p example/convex",
33
33
  "lint": "eslint .",
34
- "all": "run-p -r 'dev:*' 'test:watch'",
35
34
  "test": "vitest run --typecheck",
36
35
  "test:watch": "vitest --typecheck --clearScreen false",
37
36
  "test:debug": "vitest --inspect-brk --no-file-parallelism",
38
37
  "test:coverage": "vitest run --coverage --coverage.reporter=text",
39
- "prepare": "npm run build",
40
- "alpha": "npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags",
41
- "release": "npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags",
42
- "version": "pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
38
+ "preversion": "npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck",
39
+ "alpha": "npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags",
40
+ "release": "npm version patch && npm publish && git push --follow-tags",
41
+ "version": "(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
43
42
  },
44
43
  "exports": {
45
44
  "./package.json": "./package.json",
@@ -69,23 +68,24 @@
69
68
  "convex": "^1.24.8"
70
69
  },
71
70
  "devDependencies": {
72
- "@arethetypeswrong/cli": "0.18.2",
71
+ "@arethetypeswrong/cli": "0.18.3",
72
+ "@convex-dev/eslint-plugin": "2.0.0",
73
73
  "@edge-runtime/vm": "5.0.0",
74
- "@eslint/eslintrc": "^3.1.0",
75
- "@eslint/js": "^9.28.0",
76
- "@types/node": "20.19.24",
77
- "@typescript-eslint/eslint-plugin": "^8.4.0",
78
- "@typescript-eslint/parser": "^8.4.0",
74
+ "@eslint/eslintrc": "3.3.5",
75
+ "@eslint/js": "10.0.1",
76
+ "@types/node": "24.12.4",
77
+ "@typescript-eslint/eslint-plugin": "8.60.0",
78
+ "@typescript-eslint/parser": "8.60.0",
79
79
  "chokidar-cli": "3.0.0",
80
- "convex-test": "^0.0.38",
81
- "eslint": "^9.28.0",
82
- "eslint-plugin-react-hooks": "^7.0.1",
83
- "eslint-plugin-react-refresh": "^0.4.24",
84
- "globals": "^16.2.0",
85
- "npm-run-all2": "8.0.4",
86
- "prettier": "3.2.5",
87
- "typescript": "^5.5.0",
88
- "typescript-eslint": "^8.33.1",
89
- "vitest": "^3.2.4"
80
+ "convex": "1.39.1",
81
+ "convex-test": "0.0.53",
82
+ "eslint": "10.4.1",
83
+ "eslint-plugin-react-hooks": "7.1.1",
84
+ "eslint-plugin-react-refresh": "0.5.2",
85
+ "globals": "17.6.0",
86
+ "prettier": "3.8.3",
87
+ "typescript": "6.0.3",
88
+ "typescript-eslint": "8.60.0",
89
+ "vitest": "4.1.7"
90
90
  }
91
91
  }
@@ -8,7 +8,7 @@ import {
8
8
  } from "convex/server";
9
9
  import type { ComponentApi } from "../component/_generated/component.js";
10
10
  import type { CronInfo, Schedule } from "../component/public.js";
11
- import type { RunMutationCtx, RunQueryCtx } from "./utils.js";
11
+ import type { ActionCtx, MutationCtx, QueryCtx } from "./utils.js";
12
12
 
13
13
  export type { CronInfo };
14
14
 
@@ -67,7 +67,7 @@ export class Crons {
67
67
  * @returns A string identifier for the cron job.
68
68
  */
69
69
  async register<F extends SchedulableFunctionReference>(
70
- ctx: RunMutationCtx,
70
+ ctx: MutationCtx | ActionCtx,
71
71
  schedule: Schedule,
72
72
  func: F,
73
73
  args: FunctionArgs<F>,
@@ -86,7 +86,7 @@ export class Crons {
86
86
  *
87
87
  * @returns List of `cron` table rows.
88
88
  */
89
- async list(ctx: RunQueryCtx): Promise<CronInfo[]> {
89
+ async list(ctx: QueryCtx | MutationCtx | ActionCtx): Promise<CronInfo[]> {
90
90
  const crons = await ctx.runQuery(this.component.public.list, {});
91
91
  return crons.map((cron) => ({
92
92
  ...cron,
@@ -103,7 +103,7 @@ export class Crons {
103
103
  * @returns Cron job document.
104
104
  */
105
105
  async get(
106
- ctx: RunQueryCtx,
106
+ ctx: QueryCtx | MutationCtx | ActionCtx,
107
107
  identifier: { id: string } | { name: string },
108
108
  ): Promise<CronInfo | null> {
109
109
  const cron = await ctx.runQuery(this.component.public.get, { identifier });
@@ -124,7 +124,7 @@ export class Crons {
124
124
  * @param identifier - Either the ID or name of the cron job.
125
125
  */
126
126
  async delete(
127
- ctx: RunMutationCtx,
127
+ ctx: MutationCtx | ActionCtx,
128
128
  identifier: { id: string } | { name: string },
129
129
  ): Promise<null> {
130
130
  return ctx.runMutation(this.component.public.del, { identifier });
@@ -1,12 +1,16 @@
1
1
  import type {
2
+ GenericActionCtx,
2
3
  GenericDataModel,
3
4
  GenericMutationCtx,
4
5
  GenericQueryCtx,
5
6
  } from "convex/server";
6
7
 
7
- export type RunQueryCtx = {
8
- runQuery: GenericQueryCtx<GenericDataModel>["runQuery"];
9
- };
10
- export type RunMutationCtx = {
11
- runMutation: GenericMutationCtx<GenericDataModel>["runMutation"];
12
- };
8
+ export type QueryCtx = Pick<GenericQueryCtx<GenericDataModel>, "runQuery">;
9
+ export type MutationCtx = Pick<
10
+ GenericMutationCtx<GenericDataModel>,
11
+ "runQuery" | "runMutation"
12
+ >;
13
+ export type ActionCtx = Pick<
14
+ GenericActionCtx<GenericDataModel>,
15
+ "runQuery" | "runMutation" | "runAction"
16
+ >;
@@ -38,7 +38,7 @@ export type Doc<TableName extends TableNames> = DocumentByName<
38
38
  * Convex documents are uniquely identified by their `Id`, which is accessible
39
39
  * on the `_id` field. To learn more, see [Document IDs](https://docs.convex.dev/using/document-ids).
40
40
  *
41
- * Documents can be loaded using `db.get(id)` in query and mutation functions.
41
+ * Documents can be loaded using `db.get(tableName, id)` in query and mutation functions.
42
42
  *
43
43
  * IDs are just strings at runtime, but this type can be used to distinguish them from other
44
44
  * strings when type checking.
@@ -107,11 +107,6 @@ export const internalAction: ActionBuilder<DataModel, "internal"> =
107
107
  */
108
108
  export const httpAction: HttpActionBuilder = httpActionGeneric;
109
109
 
110
- type GenericCtx =
111
- | GenericActionCtx<DataModel>
112
- | GenericMutationCtx<DataModel>
113
- | GenericQueryCtx<DataModel>;
114
-
115
110
  /**
116
111
  * A set of services for use within Convex query functions.
117
112
  *
@@ -132,7 +132,7 @@ async function scheduleNextRun(
132
132
  internal.public.rescheduler,
133
133
  { id },
134
134
  );
135
- await ctx.db.patch(id, { schedulerJobId });
135
+ await ctx.db.patch("crons", id, { schedulerJobId });
136
136
  }
137
137
 
138
138
  function calculateNextRun(lastScheduled: Date, schedule: Schedule): Date {
@@ -184,7 +184,7 @@ export const get = query({
184
184
  handler: async (ctx, { identifier }) => {
185
185
  const cron =
186
186
  "id" in identifier
187
- ? await ctx.db.get(identifier.id)
187
+ ? await ctx.db.get("crons", identifier.id)
188
188
  : await ctx.db
189
189
  .query("crons")
190
190
  .withIndex("name", (q) => q.eq("name", identifier.name))
@@ -216,7 +216,7 @@ export const del = mutation({
216
216
  handler: async (ctx, { identifier }) => {
217
217
  let cron: Doc<"crons"> | null;
218
218
  if ("id" in identifier) {
219
- cron = await ctx.db.get(identifier.id);
219
+ cron = await ctx.db.get("crons", identifier.id);
220
220
  if (!cron) {
221
221
  throw new Error(`Cron ${identifier.id} not found`);
222
222
  }
@@ -239,7 +239,7 @@ export const del = mutation({
239
239
  await ctx.scheduler.cancel(cron.executionJobId);
240
240
  }
241
241
  console.log(`Deleting cron ${cron._id}`);
242
- await ctx.db.delete(cron._id);
242
+ await ctx.db.delete("crons", cron._id);
243
243
  },
244
244
  });
245
245
 
@@ -257,7 +257,7 @@ export const rescheduler = internalMutation({
257
257
  returns: v.null(),
258
258
  handler: async (ctx, { id }) => {
259
259
  // Cron job is the logical concept we're rescheduling repeatedly.
260
- const cronJob = await ctx.db.get(id);
260
+ const cronJob = await ctx.db.get("crons", id);
261
261
  if (!cronJob) {
262
262
  throw Error(`Cron ${id} not found`);
263
263
  }
@@ -267,7 +267,10 @@ export const rescheduler = internalMutation({
267
267
 
268
268
  // Scheduler job is the job that's running right now, that we use to trigger
269
269
  // repeated executions.
270
- const schedulerJob = await ctx.db.system.get(cronJob.schedulerJobId);
270
+ const schedulerJob = await ctx.db.system.get(
271
+ "_scheduled_functions",
272
+ cronJob.schedulerJobId,
273
+ );
271
274
  if (!schedulerJob) {
272
275
  throw Error(`Scheduler job ${cronJob.schedulerJobId} not found`);
273
276
  }
@@ -283,7 +286,10 @@ export const rescheduler = internalMutation({
283
286
  // Execution job is the previous job used to actually do the work of the cron.
284
287
  let stillRunning = false;
285
288
  if (cronJob.executionJobId) {
286
- const executionJob = await ctx.db.system.get(cronJob.executionJobId);
289
+ const executionJob = await ctx.db.system.get(
290
+ "_scheduled_functions",
291
+ cronJob.executionJobId,
292
+ );
287
293
  if (
288
294
  executionJob &&
289
295
  (executionJob.state.kind === "pending" ||
@@ -296,11 +302,12 @@ export const rescheduler = internalMutation({
296
302
  console.log(`Cron ${cronJob._id} still running, skipping this run.`);
297
303
  } else {
298
304
  console.log(`Running cron ${cronJob._id}.`);
299
- await ctx.scheduler.runAfter(
305
+ const executionJobId = await ctx.scheduler.runAfter(
300
306
  0,
301
307
  cronJob.functionHandle as FunctionHandle<"mutation" | "action">,
302
308
  cronJob.args,
303
309
  );
310
+ await ctx.db.patch("crons", id, { executionJobId });
304
311
  }
305
312
 
306
313
  await scheduleNextRun(