prostgles-server 4.2.705 → 4.2.707

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.
Files changed (60) hide show
  1. package/dist/Jobs/JobTypes.d.ts +48 -8
  2. package/dist/Jobs/JobTypes.d.ts.map +1 -1
  3. package/dist/Jobs/JobTypes.js.map +1 -1
  4. package/dist/Jobs/claimJob.d.ts +2 -0
  5. package/dist/Jobs/claimJob.d.ts.map +1 -1
  6. package/dist/Jobs/claimJob.js +26 -6
  7. package/dist/Jobs/claimJob.js.map +1 -1
  8. package/dist/Jobs/controlJob.d.ts +2 -2
  9. package/dist/Jobs/controlJob.d.ts.map +1 -1
  10. package/dist/Jobs/controlJob.js +10 -4
  11. package/dist/Jobs/controlJob.js.map +1 -1
  12. package/dist/Jobs/controlManualJob.d.ts +6 -0
  13. package/dist/Jobs/controlManualJob.d.ts.map +1 -0
  14. package/dist/Jobs/controlManualJob.js +53 -0
  15. package/dist/Jobs/controlManualJob.js.map +1 -0
  16. package/dist/Jobs/createJobControlFunctionDefiner.d.ts +57 -13
  17. package/dist/Jobs/createJobControlFunctionDefiner.d.ts.map +1 -1
  18. package/dist/Jobs/createJobControlFunctionDefiner.js +37 -7
  19. package/dist/Jobs/createJobControlFunctionDefiner.js.map +1 -1
  20. package/dist/Jobs/createJobsAPI.d.ts.map +1 -1
  21. package/dist/Jobs/createJobsAPI.js +16 -9
  22. package/dist/Jobs/createJobsAPI.js.map +1 -1
  23. package/dist/Jobs/createManualJobControlFunction.d.ts +49 -0
  24. package/dist/Jobs/createManualJobControlFunction.d.ts.map +1 -0
  25. package/dist/Jobs/createManualJobControlFunction.js +44 -0
  26. package/dist/Jobs/createManualJobControlFunction.js.map +1 -0
  27. package/dist/Jobs/enqueueJob.d.ts +1 -1
  28. package/dist/Jobs/enqueueJob.d.ts.map +1 -1
  29. package/dist/Jobs/enqueueJob.js +2 -1
  30. package/dist/Jobs/enqueueJob.js.map +1 -1
  31. package/dist/Jobs/getJobDefinition.d.ts.map +1 -1
  32. package/dist/Jobs/getJobDefinition.js +7 -4
  33. package/dist/Jobs/getJobDefinition.js.map +1 -1
  34. package/dist/Jobs/getJobRetention.d.ts.map +1 -1
  35. package/dist/Jobs/getJobRetention.js +5 -5
  36. package/dist/Jobs/getJobRetention.js.map +1 -1
  37. package/dist/Jobs/getJobTableHooks.js +1 -1
  38. package/dist/Jobs/getJobTableHooks.js.map +1 -1
  39. package/dist/Jobs/jobTableConfig.d.ts +2 -0
  40. package/dist/Jobs/jobTableConfig.d.ts.map +1 -1
  41. package/dist/Jobs/jobUtils.d.ts +2 -1
  42. package/dist/Jobs/jobUtils.d.ts.map +1 -1
  43. package/dist/Jobs/jobUtils.js +10 -1
  44. package/dist/Jobs/jobUtils.js.map +1 -1
  45. package/dist/Jobs/runJob.d.ts.map +1 -1
  46. package/dist/Jobs/runJob.js +14 -3
  47. package/dist/Jobs/runJob.js.map +1 -1
  48. package/dist/Jobs/startJob.d.ts +10 -0
  49. package/dist/Jobs/startJob.d.ts.map +1 -0
  50. package/dist/Jobs/startJob.js +40 -0
  51. package/dist/Jobs/startJob.js.map +1 -0
  52. package/dist/ProstglesTypes.d.ts +1 -1
  53. package/dist/ProstglesTypes.d.ts.map +1 -1
  54. package/dist/TableHooks/captureMutation.d.ts.map +1 -1
  55. package/dist/TableHooks/captureMutation.js +8 -2
  56. package/dist/TableHooks/captureMutation.js.map +1 -1
  57. package/dist/index.d.ts +1 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/package.json +2 -2
@@ -7,6 +7,7 @@ const runClientRequest_1 = require("../runClientRequest");
7
7
  const controlJob_1 = require("./controlJob");
8
8
  const enqueueJob_1 = require("./enqueueJob");
9
9
  const getJobTableHandler_1 = require("./getJobTableHandler");
10
+ const startJob_1 = require("./startJob");
10
11
  const createJobsAPI = (prostgles, dbx) => {
11
12
  const runInTransaction = async (callback) => {
12
13
  prostgles.checkNotDestroyed();
@@ -22,6 +23,15 @@ const createJobsAPI = (prostgles, dbx) => {
22
23
  throw error;
23
24
  }
24
25
  };
26
+ const getUserId = async (userId) => {
27
+ const clientReq = getClientRequest(prostgles, userId);
28
+ if (!clientReq)
29
+ return;
30
+ const publishParser = prostgles.publishParser;
31
+ if (!publishParser)
32
+ throw new Error("Publish parser is not initialized");
33
+ return (await publishParser.getPublishParams(clientReq, undefined)).user?.id;
34
+ };
25
35
  return {
26
36
  withTransaction: (dbx) => {
27
37
  prostgles.dboBuilder.getTransactionForHandlers(dbx);
@@ -42,6 +52,11 @@ const createJobsAPI = (prostgles, dbx) => {
42
52
  };
43
53
  return dbx ? runInTransaction(read) : read(undefined);
44
54
  },
55
+ start: (name, params = {}, options) => runInTransaction(async (transaction) => (0, startJob_1.startJob)(prostgles, transaction, name, {
56
+ params,
57
+ row: options?.row,
58
+ userId: await getUserId(options?.userId),
59
+ })),
45
60
  cancel: (id) => runInTransaction(async (transaction) => {
46
61
  const job = await (0, getJobTableHandler_1.getJobTableHandler)(prostgles, transaction).findOne({ id });
47
62
  if (!job)
@@ -55,15 +70,7 @@ const createJobsAPI = (prostgles, dbx) => {
55
70
  AND status IN ('pending', 'running')`, { jobId: id });
56
71
  }),
57
72
  rerun: (id, params = {}, options) => runInTransaction(async (transaction) => {
58
- const userId = await (async () => {
59
- const clientReq = getClientRequest(prostgles, options?.userId);
60
- if (!clientReq)
61
- return;
62
- const publishParser = prostgles.publishParser;
63
- if (!publishParser)
64
- throw new Error("Publish parser is not initialized");
65
- return (await publishParser.getPublishParams(clientReq, undefined)).user?.id;
66
- })();
73
+ const userId = await getUserId(options?.userId);
67
74
  const job = await (0, getJobTableHandler_1.getJobTableHandler)(prostgles, transaction).findOne({ id });
68
75
  if (!job)
69
76
  throw new Error("Job not found");
@@ -1 +1 @@
1
- {"version":3,"file":"createJobsAPI.js","sourceRoot":"","sources":["../../lib/Jobs/createJobsAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createJobsAPI.js","sourceRoot":"","sources":["../../lib/Jobs/createJobsAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { MaybePromise } from "prostgles-types";
2
+ import type { SessionUser } from "../Auth/AuthTypes";
3
+ import type { DBTableHandlersFromSchema } from "../DBSchemaBuilder/DBSchemaBuilder";
4
+ import type { ServerFunctionContextMarker, UnrestrictedFunctionContext } from "../PublishParser/defineServerFunction";
5
+ import type { JobControlOperation, JobRecord, JobValue, ParamsOutput, ParamsSchema } from "./JobTypes";
6
+ export declare const createManualJobControlFunction: <S, SUser extends SessionUser, Context, Schema extends ParamsSchema, Operation extends JobControlOperation>({ jobName, operation, description, params, run, }: {
7
+ jobName: string;
8
+ operation: Operation;
9
+ description: string | undefined;
10
+ params: Schema | undefined;
11
+ run: ((context: ManualJobControlFunctionContext<S, SUser, Context, ParamsOutput<Schema>>) => MaybePromise<void>) | undefined;
12
+ }) => {
13
+ input: ManualControlInput<Schema, Operation>;
14
+ description: string | undefined;
15
+ unrestrictedDbAccess: true;
16
+ run: (input: {
17
+ jobId?: string;
18
+ params?: Record<string, JobValue>;
19
+ }, context: UnrestrictedFunctionContext<S, SUser, Context>) => Promise<{
20
+ jobId: string;
21
+ }>;
22
+ } & ServerFunctionContextMarker<S, SUser, Context>;
23
+ export type ManualJobControlFunctionContext<S, SUser extends SessionUser, Context, Params> = Omit<UnrestrictedFunctionContext<S, SUser, Context>, "dbo" | "db" | "sql"> & {
24
+ row: undefined;
25
+ job: JobRecord | undefined;
26
+ params: Params;
27
+ dbx: DBTableHandlersFromSchema<S>;
28
+ };
29
+ type ManualControlInput<Schema extends ParamsSchema, Operation extends JobControlOperation> = {
30
+ jobId: {
31
+ type: "string";
32
+ optional: Operation extends "startOrRetry" ? true : false;
33
+ };
34
+ } & (Operation extends "cancel" ? {} : {
35
+ params: {
36
+ optional: true;
37
+ type: {
38
+ [Key in keyof Schema]: Omit<Schema[Key] extends {
39
+ jsonbSchema: infer Field;
40
+ } ? Field : {
41
+ type: Schema[Key]["jsonbSchemaType"];
42
+ }, "optional"> & {
43
+ optional: true;
44
+ };
45
+ };
46
+ };
47
+ });
48
+ export {};
49
+ //# sourceMappingURL=createManualJobControlFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createManualJobControlFunction.d.ts","sourceRoot":"","sources":["../../lib/Jobs/createManualJobControlFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,QAAQ,EAER,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,8BAA8B,GACzC,CAAC,EACD,KAAK,SAAS,WAAW,EACzB,OAAO,EACP,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,mBAAmB,EACrC,mDAMC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,EACC,CAAC,CACC,OAAO,EAAE,+BAA+B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,KAC9E,YAAY,CAAC,IAAI,CAAC,CAAC,GACxB,SAAS,CAAC;CACf,KA4C8B;;;;iBArBlB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;KAAE,WACnD,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;;;IAqBzD,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAChD,CAAC;AAEF,MAAM,MAAM,+BAA+B,CAAC,CAAC,EAAE,KAAK,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAC/F,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAC9C,KAAK,GAAG,IAAI,GAAG,KAAK,CACrB,GAAG;IACF,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAEF,KAAK,kBAAkB,CAAC,MAAM,SAAS,YAAY,EAAE,SAAS,SAAS,mBAAmB,IAAI;IAC5F,KAAK,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,SAAS,SAAS,cAAc,GAAG,IAAI,GAAG,KAAK,CAAA;KAAE,CAAC;CACtF,GAAG,CAAC,SAAS,SAAS,QAAQ,GAAG,EAAE,GAClC;IACE,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI,CAAC;QACf,IAAI,EAAE;aACH,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,CACzB,MAAM,CAAC,GAAG,CAAC,SAAS;gBAAE,WAAW,EAAE,MAAM,KAAK,CAAA;aAAE,GAAG,KAAK,GACtD;gBAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAA;aAAE,EAC1C,UAAU,CACX,GAAG;gBAAE,QAAQ,EAAE,IAAI,CAAA;aAAE;SACvB,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createManualJobControlFunction = void 0;
4
+ const createManualJobControlFunction = ({ jobName, operation, description, params, run, }) => {
5
+ const input = {
6
+ jobId: { type: "string", optional: operation === "startOrRetry" },
7
+ ...(operation !== "cancel" && {
8
+ params: {
9
+ type: Object.fromEntries(Object.entries(params ?? {}).map(([key, field]) => [
10
+ key,
11
+ {
12
+ ...(field.jsonbSchema ?? { type: field.jsonbSchemaType }),
13
+ optional: true,
14
+ },
15
+ ])),
16
+ optional: true,
17
+ },
18
+ }),
19
+ };
20
+ const functionDefinition = {
21
+ input,
22
+ description,
23
+ unrestrictedDbAccess: true,
24
+ run: (input, context) => {
25
+ const prepare = run &&
26
+ (({ job, params, dbx }) => run({
27
+ ...context,
28
+ row: undefined,
29
+ job,
30
+ params: params,
31
+ dbx,
32
+ jobs: context.jobs.withTransaction(dbx),
33
+ }));
34
+ return context.jobs.control(jobName, {
35
+ ...input,
36
+ operation,
37
+ run: prepare,
38
+ });
39
+ },
40
+ };
41
+ return functionDefinition;
42
+ };
43
+ exports.createManualJobControlFunction = createManualJobControlFunction;
44
+ //# sourceMappingURL=createManualJobControlFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createManualJobControlFunction.js","sourceRoot":"","sources":["../../lib/Jobs/createManualJobControlFunction.ts"],"names":[],"mappings":";;;AAgBO,MAAM,8BAA8B,GAAG,CAM5C,EACA,OAAO,EACP,SAAS,EACT,WAAW,EACX,MAAM,EACN,GAAG,GAWJ,EAAE,EAAE;IACH,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,KAAK,cAAc,EAAE;QACjE,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI;YAC5B,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBACjD,GAAG;oBACH;wBACE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;wBACzD,QAAQ,EAAE,IAAI;qBACI;iBACrB,CAAC,CACH;gBACD,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;KACsC,CAAC;IAC3C,MAAM,kBAAkB,GAAG;QACzB,KAAK;QACL,WAAW;QACX,oBAAoB,EAAE,IAAa;QACnC,GAAG,EAAE,CACH,KAA4D,EAC5D,OAAuD,EACvD,EAAE;YACF,MAAM,OAAO,GACX,GAAG;gBACH,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CACxB,GAAG,CAAC;oBACF,GAAG,OAAO;oBACV,GAAG,EAAE,SAAS;oBACd,GAAG;oBACH,MAAM,EAAE,MAAyC;oBACjD,GAAG;oBACH,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;iBACxC,CAAC,CAAC,CAAC;YACR,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE;gBACtC,GAAG,KAAK;gBACR,SAAS;gBACT,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IACF,OAAO,kBACyC,CAAC;AACnD,CAAC,CAAC;AApEW,QAAA,8BAA8B,kCAoEzC"}
@@ -1,6 +1,6 @@
1
1
  import type { Prostgles } from "../Prostgles";
2
2
  import type { JobRecord, JobTransaction } from "./JobTypes";
3
- /** Called only by configured triggers and reruns, inside their originating transaction. */
3
+ /** Enqueue configured jobs inside the trigger, start or rerun transaction. */
4
4
  export declare const enqueueJob: (prostgles: Prostgles, transaction: JobTransaction, name: string, targetRowPkey: JobRecord["target_row_pkey"], options?: {
5
5
  userId?: string;
6
6
  params?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"enqueueJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,2FAA2F;AAC3F,eAAO,MAAM,UAAU,GACrB,WAAW,SAAS,EACpB,aAAa,cAAc,EAC3B,MAAM,MAAM,EACZ,eAAe,SAAS,CAAC,iBAAiB,CAAC,EAC3C,UAAS;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,IAAI,CAAC;CACd;;;EAwFP,CAAC"}
1
+ {"version":3,"file":"enqueueJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,8EAA8E;AAC9E,eAAO,MAAM,UAAU,GACrB,WAAW,SAAS,EACpB,aAAa,cAAc,EAC3B,MAAM,MAAM,EACZ,eAAe,SAAS,CAAC,iBAAiB,CAAC,EAC3C,UAAS;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,IAAI,CAAC;CACd;;;EAyFP,CAAC"}
@@ -6,7 +6,7 @@ const node_crypto_1 = require("node:crypto");
6
6
  const getJobDefinition_1 = require("./getJobDefinition");
7
7
  const getJobTableHandler_1 = require("./getJobTableHandler");
8
8
  const getJobParams_1 = require("./getJobParams");
9
- /** Called only by configured triggers and reruns, inside their originating transaction. */
9
+ /** Enqueue configured jobs inside the trigger, start or rerun transaction. */
10
10
  const enqueueJob = async (prostgles, transaction, name, targetRowPkey, options = {}) => {
11
11
  const { definition } = (0, getJobDefinition_1.getJobDefinition)(prostgles, name);
12
12
  if (definition.runAs === "user" && !options.userId) {
@@ -80,6 +80,7 @@ const enqueueJob = async (prostgles, transaction, name, targetRowPkey, options =
80
80
  occurrence: options.occurrence?.toISOString() ?? null,
81
81
  reason: options.reason ?? "trigger",
82
82
  max_attempts: definition.retry?.maxAttempts ?? 1,
83
+ max_stalled_count: definition.retry?.maxStalledCount ?? 3,
83
84
  delay_ms: definition.retry?.delayMs ?? 1000,
84
85
  backoff: definition.retry?.backoff ?? "fixed",
85
86
  });
@@ -1 +1 @@
1
- {"version":3,"file":"enqueueJob.js","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enqueueJob.js","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getJobDefinition.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,EAAE,MAAM,MAAM;;;CASlE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,WAAW,SAAS,EAAE,QAAQ,WAAW,EAAE,kBA0DvF,CAAC"}
1
+ {"version":3,"file":"getJobDefinition.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,EAAE,MAAM,MAAM;;;CASlE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,WAAW,SAAS,EAAE,QAAQ,WAAW,EAAE,kBA6DvF,CAAC"}
@@ -28,6 +28,10 @@ const validateJobDefinitions = async (prostgles, tables) => {
28
28
  (retry &&
29
29
  (!Number.isSafeInteger(retry.maxAttempts) ||
30
30
  retry.maxAttempts < 1 ||
31
+ (retry.maxStalledCount !== undefined &&
32
+ (!Number.isSafeInteger(retry.maxStalledCount) ||
33
+ retry.maxStalledCount < 0 ||
34
+ retry.maxStalledCount > 2_147_483_647)) ||
31
35
  !Number.isFinite(retry.delayMs ?? 1000) ||
32
36
  (retry.delayMs ?? 1000) < 0 ||
33
37
  (retry.backoff !== undefined && !["fixed", "exponential"].includes(retry.backoff))))) {
@@ -38,7 +42,6 @@ const validateJobDefinitions = async (prostgles, tables) => {
38
42
  if (!table ||
39
43
  table.is_view ||
40
44
  !table.columns.some((c) => c.is_pkey) ||
41
- !trigger.on.length ||
42
45
  trigger.on.some((command) => !["insert", "update"].includes(command)) ||
43
46
  trigger.columns?.some((column) => !table.columns.some((c) => c.name === column))) {
44
47
  throw new Error(`Invalid row trigger for ${name}: expected a table with a primary key and valid columns`);
@@ -53,15 +56,15 @@ const validateJobDefinitions = async (prostgles, tables) => {
53
56
  throw new Error(`Job source table not found: ${table.name}`);
54
57
  await tableHandler.find(trigger.when, { select: "", limit: 0 });
55
58
  }
56
- // Validate untyped JavaScript configurations too.
57
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
58
59
  }
59
60
  else if (trigger.type === "schedule") {
60
61
  if (job.runAs === "user")
61
62
  throw new Error(`Scheduled job ${name} cannot runAs user`);
62
63
  (0, cronSchedule_1.parseCronSchedule)(trigger);
64
+ /* Validate untyped JavaScript configurations too. */
65
+ /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */
63
66
  }
64
- else {
67
+ else if (trigger.type !== "manual") {
65
68
  throw new Error(`Invalid job trigger: ${name}`);
66
69
  }
67
70
  await (0, getJobParams_1.getJobParams)(prostgles, job.params, {});
@@ -1 +1 @@
1
- {"version":3,"file":"getJobDefinition.js","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getJobDefinition.js","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getJobRetention.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAU,WAAW,SAAS,kCAqEzD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"getJobRetention.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAU,WAAW,SAAS,kCAmEzD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC"}
@@ -7,14 +7,14 @@ const getJobRetention = async (prostgles) => {
7
7
  for (const [jobName, definition] of Object.entries(prostgles.opts.jobs?.definitions ?? {})) {
8
8
  const retention = definition.retention;
9
9
  if (retention === undefined) {
10
- if (definition.trigger.type === "schedule") {
11
- throw new Error(`Invalid job retention for ${jobName}: required for scheduled jobs`);
10
+ if (definition.trigger.type !== "row") {
11
+ const jobType = definition.trigger.type === "schedule" ? "scheduled" : "manual";
12
+ throw new Error(`Invalid job retention for ${jobName}: required for ${jobType} jobs`);
12
13
  }
13
14
  continue;
14
15
  }
15
- if (definition.trigger.type !== "schedule" ||
16
- (retention !== "forever" && !(0, prostgles_types_1.isObject)(retention))) {
17
- throw new Error(`Invalid job retention for ${jobName}: expected a scheduled job's status policies or "forever"`);
16
+ if (definition.trigger.type === "row" || (retention !== "forever" && !(0, prostgles_types_1.isObject)(retention))) {
17
+ throw new Error(`Invalid job retention for ${jobName}: expected status policies or "forever" for a job without a row`);
18
18
  }
19
19
  if (retention === "forever")
20
20
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"getJobRetention.js","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getJobRetention.js","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ const getJobTableHooks = (prostgles, tableHooks) => {
11
11
  // Prepend in reverse order so job hooks retain their alphabetical execution order.
12
12
  const definitions = Object.entries(prostgles.opts.jobs.definitions).sort(([firstName], [secondName]) => secondName.localeCompare(firstName));
13
13
  for (const [name, { trigger }] of definitions) {
14
- if (trigger.type !== "row")
14
+ if (trigger.type !== "row" || !trigger.on.length)
15
15
  continue;
16
16
  const hook = {
17
17
  hookKey: `job:${name}`,
@@ -1 +1 @@
1
- {"version":3,"file":"getJobTableHooks.js","sourceRoot":"","sources":["../../lib/Jobs/getJobTableHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getJobTableHooks.js","sourceRoot":"","sources":["../../lib/Jobs/getJobTableHooks.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,9 @@ export declare const jobTableConfig: {
29
29
  readonly reason: "TEXT NOT NULL DEFAULT 'trigger'";
30
30
  readonly status: "TEXT NOT NULL DEFAULT 'pending'";
31
31
  readonly attempts: "INTEGER NOT NULL DEFAULT 0";
32
+ readonly stalled_count: "INTEGER NOT NULL DEFAULT 0";
32
33
  readonly max_attempts: "INTEGER NOT NULL";
34
+ readonly max_stalled_count: "INTEGER NOT NULL DEFAULT 3";
33
35
  readonly delay_ms: "DOUBLE PRECISION NOT NULL";
34
36
  readonly backoff: "TEXT NOT NULL";
35
37
  readonly cancel_requested: "BOOLEAN NOT NULL DEFAULT FALSE";
@@ -1 +1 @@
1
- {"version":3,"file":"jobTableConfig.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobTableConfig.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWS,CAAC"}
1
+ {"version":3,"file":"jobTableConfig.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobTableConfig.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWS,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { TableHandler } from "../DboBuilder/TableHandler/TableHandler";
2
- import type { JobRecord, JobValue, RowTrigger } from "./JobTypes";
2
+ import { type JobControlOperation, type JobRecord, type JobValue, type RowTrigger } from "./JobTypes";
3
3
  export declare const getJobPrimaryKeyNames: (table: TableHandler) => string[];
4
4
  export declare const matchesJobTriggerCondition: (table: TableHandler, targetRowPkey: JobRecord["target_row_pkey"], when: RowTrigger<void, string>["when"]) => Promise<boolean>;
5
+ export declare const assertJobControlStatus: (job: JobRecord, operation: JobControlOperation) => void;
5
6
  export declare const assertJobValue: (value: unknown, ancestors?: Set<object>) => asserts value is JobValue;
6
7
  export declare const jobError: (error: unknown) => string | any[] | import("prostgles-types").AnyObject;
7
8
  export declare class PermanentJobError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"jobUtils.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElE,eAAO,MAAM,qBAAqB,GAAI,OAAO,YAAY,aACsB,CAAC;AAEhF,eAAO,MAAM,0BAA0B,GACrC,OAAO,YAAY,EACnB,eAAe,SAAS,CAAC,iBAAiB,CAAC,EAC3C,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,qBAC8B,CAAC;AAEvE,eAAO,MAAM,cAAc,EAAE,CAC3B,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KACpB,OAAO,CAAC,KAAK,IAAI,QAcrB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,yDAAiD,CAAC;AAEzF,qBAAa,iBAAkB,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"jobUtils.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,qBAAqB,GAAI,OAAO,YAAY,aACsB,CAAC;AAEhF,eAAO,MAAM,0BAA0B,GACrC,OAAO,YAAY,EACnB,eAAe,SAAS,CAAC,iBAAiB,CAAC,EAC3C,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,qBAC8B,CAAC;AAEvE,eAAO,MAAM,sBAAsB,GAAI,KAAK,SAAS,EAAE,WAAW,mBAAmB,SAOpF,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,CAC3B,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KACpB,OAAO,CAAC,KAAK,IAAI,QAcrB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,yDAAiD,CAAC;AAEzF,qBAAa,iBAAkB,SAAQ,KAAK;CAAG"}
@@ -1,11 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermanentJobError = exports.jobError = exports.assertJobValue = exports.matchesJobTriggerCondition = exports.getJobPrimaryKeyNames = void 0;
3
+ exports.PermanentJobError = exports.jobError = exports.assertJobValue = exports.assertJobControlStatus = exports.matchesJobTriggerCondition = exports.getJobPrimaryKeyNames = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
+ const JobTypes_1 = require("./JobTypes");
5
6
  const getJobPrimaryKeyNames = (table) => table.columns.filter((column) => column.is_pkey).map((column) => column.name);
6
7
  exports.getJobPrimaryKeyNames = getJobPrimaryKeyNames;
7
8
  const matchesJobTriggerCondition = async (table, targetRowPkey, when) => !when || !!(await table.findOne({ $and: [targetRowPkey, when] }));
8
9
  exports.matchesJobTriggerCondition = matchesJobTriggerCondition;
10
+ const assertJobControlStatus = (job, operation) => {
11
+ const allowedStatuses = JobTypes_1.jobControlStatuses[operation];
12
+ if (allowedStatuses.includes(job.status))
13
+ return;
14
+ throw new Error(`Job "${job.job_name}" (${job.id}): "${operation}" is not allowed while status is "${job.status}". ` +
15
+ `Allowed statuses: ${allowedStatuses.join(", ")}.`);
16
+ };
17
+ exports.assertJobControlStatus = assertJobControlStatus;
9
18
  const assertJobValue = (value, ancestors = new Set()) => {
10
19
  if (value === null || typeof value === "string" || typeof value === "boolean")
11
20
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"jobUtils.js","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AAIhD,MAAM,qBAAqB,GAAG,CAAC,KAAmB,EAAE,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AADnE,QAAA,qBAAqB,yBAC8C;AAEzE,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAAmB,EACnB,aAA2C,EAC3C,IAAsC,EACtC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAJ1D,QAAA,0BAA0B,8BAIgC;AAEhE,MAAM,cAAc,GAGM,CAAC,KAAK,EAAE,YAAY,IAAI,GAAG,EAAU,EAAE,EAAE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO;IACtF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IAChE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,EAC5E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACrE,IAAA,sBAAc,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAA5E,QAAA,QAAQ,YAAoE;AAEzF,MAAa,iBAAkB,SAAQ,KAAK;CAAG;AAA/C,8CAA+C"}
1
+ {"version":3,"file":"jobUtils.js","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AAEvD,yCAMoB;AAEb,MAAM,qBAAqB,GAAG,CAAC,KAAmB,EAAE,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AADnE,QAAA,qBAAqB,yBAC8C;AAEzE,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAAmB,EACnB,aAA2C,EAC3C,IAAsC,EACtC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAJ1D,QAAA,0BAA0B,8BAIgC;AAEhE,MAAM,sBAAsB,GAAG,CAAC,GAAc,EAAE,SAA8B,EAAE,EAAE;IACvF,MAAM,eAAe,GAAG,6BAAkB,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IACjD,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,EAAE,OAAO,SAAS,qCAAqC,GAAG,CAAC,MAAM,KAAK;QAClG,qBAAqB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrD,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC;AAEK,MAAM,cAAc,GAGM,CAAC,KAAK,EAAE,YAAY,IAAI,GAAG,EAAU,EAAE,EAAE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO;IACtF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IAChE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,EAC5E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACrE,IAAA,sBAAc,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAA5E,QAAA,QAAQ,YAAoE;AAEzF,MAAa,iBAAkB,SAAQ,KAAK;CAAG;AAA/C,8CAA+C"}
@@ -1 +1 @@
1
- {"version":3,"file":"runJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAc,SAAS,EAA0B,MAAM,YAAY,CAAC;AAGhF,eAAO,MAAM,MAAM,GACjB,WAAW,SAAS,EACpB,KAAK,OAAO,CAAC,SAAS,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EAC9C,YAAY,eAAe,EAC3B,UAAU,MAAM,OAAO,kBAqLxB,CAAC"}
1
+ {"version":3,"file":"runJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAc,SAAS,EAA0B,MAAM,YAAY,CAAC;AAGhF,eAAO,MAAM,MAAM,GACjB,WAAW,SAAS,EACpB,KAAK,OAAO,CAAC,SAAS,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EAC9C,YAAY,eAAe,EAC3B,UAAU,MAAM,OAAO,kBAmMxB,CAAC"}
@@ -132,12 +132,23 @@ const runJob = async (prostgles, job, controller, stopping) => {
132
132
  await heartbeatWork;
133
133
  }
134
134
  if (stopping()) {
135
- await db.none(`UPDATE ${tableSQL} SET locked_until = clock_timestamp() WHERE ${owned}`, claim);
135
+ await db.none(`UPDATE ${tableSQL}
136
+ SET
137
+ status = CASE WHEN cancel_requested THEN 'cancelled' ELSE 'pending' END,
138
+ attempts = attempts - CASE WHEN cancel_requested THEN 0 ELSE 1 END,
139
+ lease_token = NULL,
140
+ locked_until = NULL,
141
+ run_at = clock_timestamp(),
142
+ finished_at = CASE WHEN cancel_requested THEN clock_timestamp() END
143
+ WHERE ${owned}`, claim);
136
144
  return;
137
145
  }
138
- const delayMs = Math.min(2_147_483_647, job.delay_ms * (job.backoff === "exponential" ? 2 ** (job.attempts - 1) : 1));
146
+ const failureAttempts = job.attempts - job.stalled_count;
147
+ const delayMs = Math.min(2_147_483_647, job.delay_ms * (job.backoff === "exponential" ? 2 ** (failureAttempts - 1) : 1));
139
148
  const finishJob = async (failure, output) => {
140
- const retry = failure && !(failure.error instanceof jobUtils_1.PermanentJobError) && job.attempts < job.max_attempts;
149
+ const retry = failure &&
150
+ !(failure.error instanceof jobUtils_1.PermanentJobError) &&
151
+ failureAttempts < job.max_attempts;
141
152
  const status = !failure ? "succeeded"
142
153
  : retry ? "pending"
143
154
  : "failed";
@@ -1 +1 @@
1
- {"version":3,"file":"runJob.js","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":";;;AACA,0DAA6D;AAC7D,yDAAsD;AACtD,mDAAgD;AAEhD,yCAAyE;AAElE,MAAM,MAAM,GAAG,KAAK,EACzB,SAAoB,EACpB,GAA8C,EAC9C,UAA2B,EAC3B,QAAuB,EACvB,EAAE;IACF,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,KAAK,GACT,2GAA2G,CAAC;IAC9G,MAAM,KAAK,GAAG,KAAK,EAAE,GAAW,EAAE,MAA+B,EAAE,EAAE;QACnE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAC/B,UAAU,QAAQ,QAAQ,GAAG,UAAU,KAAK,wCAAwC,EACpF,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CACxB,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC3D,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACrC,CAAC;IACH,CAAC,CAAC;IACF,IAAI,SAAoD,CAAC;IACzD,IAAI,OAAkD,CAAC;IACvD,IAAI,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ;YAAE,OAAO;QACrB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC1B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,SAAS,CAC5B;mBACS,QAAQ;;kBAET,KAAK;;SAEd,EACC,KAAK,CACN,CAAC;gBACF,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB;oBAC9B,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,EAAE;iBACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAClD,OAAO,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC;IACF,KAAK,EAAE,CAAC;IACR,IAAI,OAAuC,CAAC;IAC5C,IAAI,MAAM,GAAa,IAAI,CAAC;IAC5B,IAAI,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,mCAAgB,EAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,GAAG,UAAU,CAClB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,EAClD,UAAU,CAAC,SAAS,CACrB,CAAC;YACF,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAa,EAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QACrF,MAAM,GAAG,GACP,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YACjC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC;YAC7E,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,GAAG;YAC3C,MAAM,IAAI,4BAAiB,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,UAAU,GAAgE;YAC9E,GAAG,OAAO;YACV,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE;YAC3F,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC9B,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACtB,IAAI,GAAG,CAAC;oBACR,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvB,KAAK,GAAG,CAAC;oBACT,IAAI,GAAG,KAAK,EACZ,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC,qCAAqC,EAAE;oBACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,CAAC;YACjF,UAAU,EAAE;gBACV,GAAG,EAAE,KAAK,IAAO,EAAE;oBACjB,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAC/B,0CAA0C,QAAQ,UAAU,KAAK,2BAA2B,EAC5F,KAAK,CACN,CAAC;oBACF,IAAI,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC5D,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,CAAC;gBACD,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;oBACxB,IAAA,yBAAc,EAAC,UAAU,CAAC,CAAC;oBAC3B,MAAM,KAAK,CAAC,wDAAwD,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;gBACxF,CAAC;aACF;YACD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,IAAI,4BAAiB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;QACF,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAC7C;YACE,GAAG,IAAA,yCAAsB,EAAC,SAAS,CAAC;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,YAAY,EAAE,GAAG,CAAC,QAAQ;oBAC1B,cAAc,EACZ,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;wBACjC;4BACE;gCACE,OAAO,EAAE,KAAK;gCACd,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK;gCACnC,OAAO,EAAE,GAAG,CAAC,eAAe;6BAC7B;yBACF;wBACH,CAAC,CAAC,EAAE;iBACP;aACF;SACF,EACD,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CACjC,CAAC;QACF,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,QAAQ,GAAG,IAAI,CAAC;QAChB,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,aAAa,CAAC;IACtB,CAAC;IACD,IAAI,QAAQ,EAAE,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,QAAQ,+CAA+C,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,aAAa,EACb,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7E,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,OAAuC,EAAE,MAAgB,EAAE,EAAE;QACpF,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,4BAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC;QAC9F,MAAM,MAAM,GACV,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;YACtB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACnB,CAAC,CAAC,QAAQ,CAAC;QACb,MAAM,EAAE,CAAC,IAAI,CACX;aACO,QAAQ;;;;;;;;;YAST,KAAK;GACd,EACG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,mBAAQ,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CACvF,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO;YAAE,MAAM,KAAK,CAAC;QACzB,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC;AAzLW,QAAA,MAAM,UAyLjB"}
1
+ {"version":3,"file":"runJob.js","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Prostgles } from "../Prostgles";
2
+ import type { JobRecord, JobTransaction, JobValue } from "./JobTypes";
3
+ export declare const startJob: (prostgles: Prostgles, transaction: JobTransaction, name: string, options: {
4
+ params: Record<string, JobValue>;
5
+ row: JobRecord["target_row_pkey"] | undefined;
6
+ userId: string | undefined;
7
+ }) => Promise<{
8
+ jobId: string;
9
+ }>;
10
+ //# sourceMappingURL=startJob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/startJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtE,eAAO,MAAM,QAAQ,GACnB,WAAW,SAAS,EACpB,aAAa,cAAc,EAC3B,MAAM,MAAM,EACZ,SAAS;IACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;;EA6BF,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startJob = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const ExecutionContext_1 = require("../ExecutionContext");
6
+ const enqueueJob_1 = require("./enqueueJob");
7
+ const getJobDefinition_1 = require("./getJobDefinition");
8
+ const jobUtils_1 = require("./jobUtils");
9
+ const startJob = async (prostgles, transaction, name, options) => {
10
+ const { trigger } = (0, getJobDefinition_1.getJobDefinition)(prostgles, name).definition;
11
+ const enqueue = async (targetRowPkey) => {
12
+ const { jobId } = await (0, enqueueJob_1.enqueueJob)(prostgles, transaction, name, targetRowPkey, options);
13
+ return { jobId };
14
+ };
15
+ if (trigger.type !== "row") {
16
+ if (options.row)
17
+ throw new Error(`Job ${name} does not accept a row`);
18
+ return enqueue({});
19
+ }
20
+ const rowTable = transaction.dbx[trigger.table];
21
+ if (!rowTable)
22
+ throw new Error(`Job source table not found: ${trigger.table}`);
23
+ const primaryKeys = (0, jobUtils_1.getJobPrimaryKeyNames)(rowTable);
24
+ const rowLookup = options.row;
25
+ if (!rowLookup || !primaryKeys.length || primaryKeys.some((key) => rowLookup[key] == null)) {
26
+ throw new Error("Job row primary key is unavailable");
27
+ }
28
+ const filter = Object.fromEntries(primaryKeys.map((key) => [key, { $eq: rowLookup[key] }]));
29
+ /* Lock the target row before enqueueing, matching automatic row triggers. */
30
+ const row = await rowTable.findOne(filter, { forUpdate: true });
31
+ if (!row)
32
+ throw new Error("Job row is unavailable");
33
+ const targetRowPkey = (0, prostgles_types_1.pickKeys)(row, primaryKeys);
34
+ if (!(await (0, jobUtils_1.matchesJobTriggerCondition)(rowTable, targetRowPkey, trigger.when))) {
35
+ throw new Error("Job row does not satisfy its trigger condition");
36
+ }
37
+ return (0, ExecutionContext_1.runJobControl)(rowTable, targetRowPkey, { jobName: name, operation: "startOrRetry" }, () => enqueue(targetRowPkey));
38
+ };
39
+ exports.startJob = startJob;
40
+ //# sourceMappingURL=startJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startJob.js","sourceRoot":"","sources":["../../lib/Jobs/startJob.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAC3C,0DAAoD;AAEpD,6CAA0C;AAC1C,yDAAsD;AAEtD,yCAA+E;AAExE,MAAM,QAAQ,GAAG,KAAK,EAC3B,SAAoB,EACpB,WAA2B,EAC3B,IAAY,EACZ,OAIC,EACD,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mCAAgB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC;IACjE,MAAM,OAAO,GAAG,KAAK,EAAE,aAA2C,EAAE,EAAE;QACpE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,uBAAU,EAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACzF,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAC9B,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,6EAA6E;IAC7E,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE,WAAW,CAAiC,CAAC;IACjF,IAAI,CAAC,CAAC,MAAM,IAAA,qCAA0B,EAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAA,gCAAa,EAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,CAC/F,OAAO,CAAC,aAAa,CAAC,CACvB,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,QAAQ,YAqCnB"}
@@ -188,7 +188,7 @@ export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUs
188
188
  * Server-side functions that can be invoked by the client
189
189
  */
190
190
  functions?: ServerFunctionDefinitions<S, SUser, Context>;
191
- /** Durable jobs triggered by row changes or schedules. */
191
+ /** Durable jobs triggered manually, by row changes or by schedules. */
192
192
  jobs?: JobsOptions<S, Context>;
193
193
  /**
194
194
  * If true then will test all table methods on each socket connect.