@appconda/nextjs 1.0.129 → 1.0.131
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.
- package/dist/modules/scheduled-job/action.d.ts +5 -2
- package/dist/modules/scheduled-job/action.js +14 -2
- package/dist/modules/scheduled-job/schema.d.ts +1 -0
- package/dist/modules/scheduled-job/schema.js +2 -1
- package/dist/modules/scheduled-job/service.d.ts +4 -3
- package/dist/modules/scheduled-job/service.js +4 -1
- package/dist/modules/scheduled-job/types.d.ts +11 -1
- package/dist/modules/scheduled-job/types.js +1 -1
- package/package.json +1 -1
- package/src/modules/scheduled-job/action.ts +18 -3
- package/src/modules/scheduled-job/schema.ts +5 -0
- package/src/modules/scheduled-job/service.ts +7 -3
- package/src/modules/scheduled-job/types.ts +13 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Execution, ExecutionTrend, FailedJob, ScheduledJob } from './types';
|
1
|
+
import { Execution, ExecutionTrend, FailedJob, JobStats, ScheduledJob } from './types';
|
2
2
|
export declare const CreateScheduledJob: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
3
3
|
id: import("zod").ZodOptional<import("zod").ZodString>;
|
4
4
|
name: import("zod").ZodString;
|
@@ -61,4 +61,7 @@ export declare const GetDailyExecutionTrend: import("next-safe-action").SafeActi
|
|
61
61
|
}, readonly [], ExecutionTrend[]>;
|
62
62
|
export declare const GetTopFailedJobs: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>, readonly [], {
|
63
63
|
_errors?: string[];
|
64
|
-
}, readonly [], FailedJob
|
64
|
+
}, readonly [], FailedJob>;
|
65
|
+
export declare const GetJobStats: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>, readonly [], {
|
66
|
+
_errors?: string[];
|
67
|
+
}, readonly [], JobStats>;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
'use server';
|
2
2
|
import { actionClient } from '../../actions/actionClient';
|
3
3
|
import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
|
4
|
-
import { CreateScheduledJobSchema, GetDailyExecutionTrendSchema, GetScheduledJobSchema, GetTopFailedJobsSchema, ListExecutionsSchema, ListScheduledJobsSchema } from './schema';
|
4
|
+
import { CreateScheduledJobSchema, GetDailyExecutionTrendSchema, GetJobStatsSchema, GetScheduledJobSchema, GetTopFailedJobsSchema, ListExecutionsSchema, ListScheduledJobsSchema } from './schema';
|
5
5
|
export const CreateScheduledJob = actionClient
|
6
6
|
.schema(CreateScheduledJobSchema)
|
7
7
|
.action(async ({ parsedInput }) => {
|
@@ -74,4 +74,16 @@ export const GetTopFailedJobs = actionClient
|
|
74
74
|
throw new Error('Failed to fetch GetTopFailedJobs');
|
75
75
|
}
|
76
76
|
});
|
77
|
-
|
77
|
+
export const GetJobStats = actionClient
|
78
|
+
.schema(GetJobStatsSchema)
|
79
|
+
.action(async ({ parsedInput }) => {
|
80
|
+
try {
|
81
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
82
|
+
return await scheduledJob.GetJobStats(parsedInput);
|
83
|
+
}
|
84
|
+
catch (error) {
|
85
|
+
console.error('Error in GetJobStats:', error);
|
86
|
+
throw new Error('Failed to fetch GetJobStats');
|
87
|
+
}
|
88
|
+
});
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvc2NoZWR1bGVkLWpvYi9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBR2IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduTSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZO0tBQ3pDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztLQUNoQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQXlCLEVBQUU7SUFDckQsSUFBSSxDQUFDO1FBRUQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sWUFBWSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTlELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsWUFBWTtLQUM1QyxNQUFNLENBQUMsdUJBQXVCLENBQUM7S0FDL0IsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUEyQixFQUFFO0lBQ3ZELElBQUksQ0FBQztRQUVELE1BQU0sRUFBRSxZQUFZ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QUFDLENBQUM7SUFDeEQsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVk7S0FDdEMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0tBQ3pCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBcUIsRUFBRTtJQUNqRCxJQUFJLENBQUM7UUFFRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXZELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDbkQsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzZXJ2ZXInO1xuXG5cbmltcG9ydCB7IGFjdGlvbkNsaWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvYWN0aW9uQ2xpZW50JztcbmltcG9ydCB7IGdldFNES0ZvckN1cnJlbnRVc2VyIH0gZnJvbSAnLi4vLi4vZ2V0U0RLRm9yQ3VycmVudFVzZXInO1xuaW1wb3J0IHsgQ3JlYXRlU2NoZWR1bGVkSm9iU2NoZW1hLCBHZXREYWlseUV4ZWN1dGlvblRyZW5kU2NoZW1hLCBHZXRKb2JTdGF0c1NjaGVtYSwgR2V0U2NoZWR1bGVkSm9iU2NoZW1hLCBHZXRUb3BGYWlsZWRKb2JzU2NoZW1hLCBMaXN0RXhlY3V0aW9uc1NjaGVtYSwgTGlzdFNjaGVkdWxlZEpvYnNTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgeyBFeGVjdXRpb24sIEV4ZWN1dGlvblRyZW5kLCBGYWlsZWRKb2IsIEpvYlN0YXRzLCBTY2hlZHVsZWRKb2IgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjaGVkdWxlZEpvYiA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoQ3JlYXRlU2NoZWR1bGVkSm9iU2NoZW1hKVxuICAgIC5hY3Rpb24oYXN5bmMgKHsgcGFyc2VkSW5wdXQgfSk6IFByb21pc2U8U2NoZWR1bGVkSm9iPiA9PiB7XG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHNjaGVkdWxlZEpvYi5DcmVhdGVTY2hlZHVsZWRKb2IocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBDcmVhdGVTY2hlZHVsZWRKb2I6JywgZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggQ3JlYXRlU2NoZWR1bGVkSm9iJyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGV4cG9ydCBjb25zdCBMaXN0U2NoZWR1bGVkSm9icyA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoTGlzdFNjaGVkdWxlZEpvYnNTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxTY2hlZHVsZWRKb2JbXT4gPT4ge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBzY2hlZHVsZWRKb2IuTGlzdFNjaGVkdWxlZEpvYnMocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBMaXN0U2NoZWR1bGVkSm9iczonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBMaXN0U2NoZWR1bGVkSm9icycpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBleHBvcnQgY29uc3QgR2V0U2NoZWR1bGVkSm9iID0gYWN0aW9uQ2xpZW50XG4gICAgLnNjaGVtYShHZXRTY2hlZHVsZWRKb2JTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxTY2hlZHVsZWRKb2I+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgc2NoZWR1bGVkSm9iLkdldFNjaGVkdWxlZEpvYihwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIEdldFNjaGVkdWxlZEpvYjonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBHZXRTY2hlZHVsZWRKb2InKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIGV4cG9ydCBjb25zdCBMaXN0RXhlY3V0aW9ucyA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoTGlzdEV4ZWN1dGlvbnNTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxFeGVjdXRpb25bXT4gPT4ge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBzY2hlZHVsZWRKb2IuTGlzdEV4ZWN1dGlvbnMocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBMaXN0RXhlY3V0aW9uczonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBMaXN0RXhlY3V0aW9ucycpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBleHBvcnQgY29uc3QgR2V0RGFpbHlFeGVjdXRpb25UcmVuZCA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoR2V0RGFpbHlFeGVjdXRpb25UcmVuZFNjaGVtYSlcbiAgICAuYWN0aW9uKGFzeW5jICh7IHBhcnNlZElucHV0IH0pOiBQcm9taXNlPEV4ZWN1dGlvblRyZW5kW10+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgc2NoZWR1bGVkSm9iLkdldERhaWx5RXhlY3V0aW9uVHJlbmQocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBHZXREYWlseUV4ZWN1dGlvblRyZW5kOicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIEdldERhaWx5RXhlY3V0aW9uVHJlbmQnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhwb3J0IGNvbnN0IEdldFRvcEZhaWxlZEpvYnMgPSBhY3Rpb25DbGllbnRcbiAgICAuc2NoZW1hKEdldFRvcEZhaWxlZEpvYnNTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxGYWlsZWRKb2I+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgc2NoZWR1bGVkSm9iLkdldFRvcEZhaWxlZEpvYnMocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBHZXRUb3BGYWlsZWRKb2JzOicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIEdldFRvcEZhaWxlZEpvYnMnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhwb3J0IGNvbnN0IEdldEpvYlN0YXRzID0gYWN0aW9uQ2xpZW50XG4gICAgLnNjaGVtYShHZXRKb2JTdGF0c1NjaGVtYSlcbiAgICAuYWN0aW9uKGFzeW5jICh7IHBhcnNlZElucHV0IH0pOiBQcm9taXNlPEpvYlN0YXRzPiA9PiB7XG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHNjaGVkdWxlZEpvYi5HZXRKb2JTdGF0cyhwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIEdldEpvYlN0YXRzOicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIEdldEpvYlN0YXRzJyk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAgICAgICAgIFxuICAgIFxuICAgICAgICBcbiAgICAiXX0=
|
@@ -32,3 +32,4 @@ export declare const ListExecutionsSchema: z.ZodObject<{
|
|
32
32
|
}>;
|
33
33
|
export declare const GetDailyExecutionTrendSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
34
34
|
export declare const GetTopFailedJobsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
35
|
+
export declare const GetJobStatsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
@@ -14,4 +14,5 @@ export const ListExecutionsSchema = z.object({
|
|
14
14
|
});
|
15
15
|
export const GetDailyExecutionTrendSchema = z.object({});
|
16
16
|
export const GetTopFailedJobsSchema = z.object({});
|
17
|
-
|
17
|
+
export const GetJobStatsSchema = z.object({});
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvc2NoZWR1bGVkLWpvYi9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUNoRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBRS9DLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUM3QixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBRXBELENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFFOUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUV6QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlU2NoZWR1bGVkSm9iU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBjcm9uOiB6LnN0cmluZygpLFxuICAgIGVuYWJsZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCkuZGVmYXVsdCh0cnVlKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFNjaGVkdWxlZEpvYnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICBcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0U2NoZWR1bGVkSm9iU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RFeGVjdXRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHNjaGVkdWxlZEpvYklkOiB6LnN0cmluZygpXG59KTtcbiAgICBcbmV4cG9ydCBjb25zdCBHZXREYWlseUV4ZWN1dGlvblRyZW5kU2NoZW1hID0gei5vYmplY3Qoe1xuICAgXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldFRvcEZhaWxlZEpvYnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICBcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0Sm9iU3RhdHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICBcbn0pO1xuXG4iXX0=
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import z from "zod";
|
2
2
|
import { ServiceClient } from "../../service-client";
|
3
|
-
import { CreateScheduledJobSchema, ListScheduledJobsSchema, GetScheduledJobSchema, ListExecutionsSchema, GetDailyExecutionTrendSchema, GetTopFailedJobsSchema } from "./schema";
|
4
|
-
import { Execution, ExecutionTrend, FailedJob, ScheduledJob } from "./types";
|
3
|
+
import { CreateScheduledJobSchema, ListScheduledJobsSchema, GetScheduledJobSchema, ListExecutionsSchema, GetDailyExecutionTrendSchema, GetTopFailedJobsSchema, GetJobStatsSchema } from "./schema";
|
4
|
+
import { Execution, ExecutionTrend, FailedJob, JobStats, ScheduledJob } from "./types";
|
5
5
|
export declare class ScheduledJobService extends ServiceClient {
|
6
6
|
protected getServiceName(): string;
|
7
7
|
CreateScheduledJob(payload: z.infer<typeof CreateScheduledJobSchema>): Promise<ScheduledJob>;
|
@@ -9,5 +9,6 @@ export declare class ScheduledJobService extends ServiceClient {
|
|
9
9
|
GetScheduledJob(payload: z.infer<typeof GetScheduledJobSchema>): Promise<ScheduledJob>;
|
10
10
|
ListExecutions(payload: z.infer<typeof ListExecutionsSchema>): Promise<Execution[]>;
|
11
11
|
GetDailyExecutionTrend(payload: z.infer<typeof GetDailyExecutionTrendSchema>): Promise<ExecutionTrend[]>;
|
12
|
-
GetTopFailedJobs(payload: z.infer<typeof GetTopFailedJobsSchema>): Promise<FailedJob
|
12
|
+
GetTopFailedJobs(payload: z.infer<typeof GetTopFailedJobsSchema>): Promise<FailedJob>;
|
13
|
+
GetJobStats(payload: z.infer<typeof GetJobStatsSchema>): Promise<JobStats>;
|
13
14
|
}
|
@@ -21,5 +21,8 @@ export class ScheduledJobService extends ServiceClient {
|
|
21
21
|
async GetTopFailedJobs(payload) {
|
22
22
|
return await this.actionCall('GetTopFailedJobs', payload);
|
23
23
|
}
|
24
|
+
async GetJobStats(payload) {
|
25
|
+
return await this.actionCall('GetJobStats', payload);
|
26
|
+
}
|
24
27
|
}
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2Ivc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJckQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUFDeEMsY0FBYztRQUNwQixPQUFPLHFDQUFxQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBaUQ7UUFDN0UsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFnRDtRQUMzRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUE4QztRQUN2RSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE2QztRQUNyRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLE9BQXFEO1FBQ3JGLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBK0M7UUFDekUsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBMEM7UUFDL0QsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHogZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgU2VydmljZUNsaWVudCB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLWNsaWVudFwiO1xuaW1wb3J0IHsgQ3JlYXRlU2NoZWR1bGVkSm9iU2NoZW1hLCBMaXN0U2NoZWR1bGVkSm9ic1NjaGVtYSwgR2V0U2NoZWR1bGVkSm9iU2NoZW1hLCBMaXN0RXhlY3V0aW9uc1NjaGVtYSwgR2V0RGFpbHlFeGVjdXRpb25UcmVuZFNjaGVtYSwgR2V0VG9wRmFpbGVkSm9ic1NjaGVtYSwgR2V0Sm9iU3RhdHNTY2hlbWEgfSBmcm9tIFwiLi9zY2hlbWFcIjtcbmltcG9ydCB7IEV4ZWN1dGlvbiwgRXhlY3V0aW9uVHJlbmQsIEZhaWxlZEpvYiwgSm9iU3RhdHMsIFNjaGVkdWxlZEpvYiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBTY2hlZHVsZWRKb2JTZXJ2aWNlIGV4dGVuZHMgU2VydmljZUNsaWVudCB7XG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnY29tLmFwcGNvbmRhLnNlcnZpY2Uuc2NoZWR1bGVkLWpvYnMnO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVTY2hlZHVsZWRKb2IocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlU2NoZWR1bGVkSm9iU2NoZW1hPik6IFByb21pc2U8U2NoZWR1bGVkSm9iPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ0NyZWF0ZVNjaGVkdWxlZEpvYicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0U2NoZWR1bGVkSm9icyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0U2NoZWR1bGVkSm9ic1NjaGVtYT4pOiBQcm9taXNlPFNjaGVkdWxlZEpvYltdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ0xpc3RTY2hlZHVsZWRKb2JzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldFNjaGVkdWxlZEpvYihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRTY2hlZHVsZWRKb2JTY2hlbWE+KTogUHJvbWlzZTxTY2hlZHVsZWRKb2I+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnR2V0U2NoZWR1bGVkSm9iJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RFeGVjdXRpb25zKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RFeGVjdXRpb25zU2NoZW1hPik6IFByb21pc2U8RXhlY3V0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnTGlzdEV4ZWN1dGlvbnMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0RGFpbHlFeGVjdXRpb25UcmVuZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXREYWlseUV4ZWN1dGlvblRyZW5kU2NoZW1hPik6IFByb21pc2U8RXhlY3V0aW9uVHJlbmRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdHZXREYWlseUV4ZWN1dGlvblRyZW5kJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldFRvcEZhaWxlZEpvYnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0VG9wRmFpbGVkSm9ic1NjaGVtYT4pOiBQcm9taXNlPEZhaWxlZEpvYj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdHZXRUb3BGYWlsZWRKb2JzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldEpvYlN0YXRzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIEdldEpvYlN0YXRzU2NoZW1hPik6IFByb21pc2U8Sm9iU3RhdHM+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnR2V0Sm9iU3RhdHMnLCBwYXlsb2FkKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
|
@@ -35,5 +35,15 @@ export type FailedJob = {
|
|
35
35
|
label: string;
|
36
36
|
data: number[];
|
37
37
|
backgroundColor: string;
|
38
|
-
};
|
38
|
+
}[];
|
39
|
+
};
|
40
|
+
export type JobStats = {
|
41
|
+
scheduledJobId: string;
|
42
|
+
total: number;
|
43
|
+
completed: number;
|
44
|
+
failed: number;
|
45
|
+
queued: number;
|
46
|
+
avgDay: number;
|
47
|
+
avgDuration: number;
|
48
|
+
lastRun: string;
|
39
49
|
};
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9zY2hlZHVsZWQtam9iL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVkSm9iID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNyb246IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgbGFzdFJ1bj86IERhdGU7XG4gIG5leHRSdW4/
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9zY2hlZHVsZWQtam9iL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVkSm9iID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNyb246IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgbGFzdFJ1bj86IERhdGU7XG4gIG5leHRSdW4/OiBEYXRlO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHVwZGF0ZWRBdDogRGF0ZTtcbn1cblxuZXhwb3J0IHR5cGUgSm9iUnVuID0ge1xuICBpZDogc3RyaW5nO1xuICBqb2JJZDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHVwZGF0ZWRBdDogRGF0ZTtcbn1cblxuZXhwb3J0IHR5cGUgRXhlY3V0aW9uID0ge1xuICBpZDogc3RyaW5nO1xuICBzY2hlZHVsZWRKb2JJZDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHVwZGF0ZWRBdDogRGF0ZTtcbiAgc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblRyZW5kID0ge1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBkYXRhc2V0czoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgZGF0YTogbnVtYmVyW107XG4gICAgYm9yZGVyQ29sb3I6IHN0cmluZztcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBGYWlsZWRKb2IgPSB7XG4gIGxhYmVsczogc3RyaW5nW107XG4gIGRhdGFzZXRzOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBkYXRhOiBudW1iZXJbXTtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgfVtdO1xufVxuXG5leHBvcnQgdHlwZSBKb2JTdGF0cyA9IHtcbiAgc2NoZWR1bGVkSm9iSWQ6IHN0cmluZztcbiAgdG90YWw6IG51bWJlcjtcbiAgY29tcGxldGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICBxdWV1ZWQ6IG51bWJlcjtcbiAgYXZnRGF5OiBudW1iZXI7XG4gIGF2Z0R1cmF0aW9uOiBudW1iZXI7XG4gIGxhc3RSdW46IHN0cmluZztcbn1cblxuIl19
|
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "@appconda/nextjs",
|
3
3
|
"homepage": "https://appconda.io/support",
|
4
4
|
"description": "Appconda is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API",
|
5
|
-
"version": "1.0.
|
5
|
+
"version": "1.0.131",
|
6
6
|
"license": "BSD-3-Clause",
|
7
7
|
"main": "dist/index.js",
|
8
8
|
"types": "dist/index.d.ts",
|
@@ -3,8 +3,8 @@
|
|
3
3
|
|
4
4
|
import { actionClient } from '../../actions/actionClient';
|
5
5
|
import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
|
6
|
-
import { CreateScheduledJobSchema, GetDailyExecutionTrendSchema, GetScheduledJobSchema, GetTopFailedJobsSchema, ListExecutionsSchema, ListScheduledJobsSchema } from './schema';
|
7
|
-
import { Execution, ExecutionTrend, FailedJob, ScheduledJob } from './types';
|
6
|
+
import { CreateScheduledJobSchema, GetDailyExecutionTrendSchema, GetJobStatsSchema, GetScheduledJobSchema, GetTopFailedJobsSchema, ListExecutionsSchema, ListScheduledJobsSchema } from './schema';
|
7
|
+
import { Execution, ExecutionTrend, FailedJob, JobStats, ScheduledJob } from './types';
|
8
8
|
|
9
9
|
export const CreateScheduledJob = actionClient
|
10
10
|
.schema(CreateScheduledJobSchema)
|
@@ -78,7 +78,7 @@ export const CreateScheduledJob = actionClient
|
|
78
78
|
|
79
79
|
export const GetTopFailedJobs = actionClient
|
80
80
|
.schema(GetTopFailedJobsSchema)
|
81
|
-
.action(async ({ parsedInput }): Promise<FailedJob
|
81
|
+
.action(async ({ parsedInput }): Promise<FailedJob> => {
|
82
82
|
try {
|
83
83
|
|
84
84
|
const { scheduledJob } = await getSDKForCurrentUser();
|
@@ -89,6 +89,21 @@ export const CreateScheduledJob = actionClient
|
|
89
89
|
throw new Error('Failed to fetch GetTopFailedJobs');
|
90
90
|
}
|
91
91
|
});
|
92
|
+
|
93
|
+
export const GetJobStats = actionClient
|
94
|
+
.schema(GetJobStatsSchema)
|
95
|
+
.action(async ({ parsedInput }): Promise<JobStats> => {
|
96
|
+
try {
|
97
|
+
|
98
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
99
|
+
return await scheduledJob.GetJobStats(parsedInput);
|
100
|
+
|
101
|
+
} catch (error) {
|
102
|
+
console.error('Error in GetJobStats:', error);
|
103
|
+
throw new Error('Failed to fetch GetJobStats');
|
104
|
+
}
|
105
|
+
});
|
106
|
+
|
92
107
|
|
93
108
|
|
94
109
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
|
2
2
|
import z from "zod";
|
3
3
|
import { ServiceClient } from "../../service-client";
|
4
|
-
import { CreateScheduledJobSchema, ListScheduledJobsSchema, GetScheduledJobSchema, ListExecutionsSchema, GetDailyExecutionTrendSchema, GetTopFailedJobsSchema } from "./schema";
|
5
|
-
import { Execution, ExecutionTrend, FailedJob, ScheduledJob } from "./types";
|
4
|
+
import { CreateScheduledJobSchema, ListScheduledJobsSchema, GetScheduledJobSchema, ListExecutionsSchema, GetDailyExecutionTrendSchema, GetTopFailedJobsSchema, GetJobStatsSchema } from "./schema";
|
5
|
+
import { Execution, ExecutionTrend, FailedJob, JobStats, ScheduledJob } from "./types";
|
6
6
|
|
7
7
|
export class ScheduledJobService extends ServiceClient {
|
8
8
|
protected getServiceName(): string {
|
@@ -29,8 +29,12 @@ export class ScheduledJobService extends ServiceClient {
|
|
29
29
|
return await this.actionCall('GetDailyExecutionTrend', payload);
|
30
30
|
}
|
31
31
|
|
32
|
-
public async GetTopFailedJobs(payload: z.infer<typeof GetTopFailedJobsSchema>): Promise<FailedJob
|
32
|
+
public async GetTopFailedJobs(payload: z.infer<typeof GetTopFailedJobsSchema>): Promise<FailedJob> {
|
33
33
|
return await this.actionCall('GetTopFailedJobs', payload);
|
34
34
|
}
|
35
|
+
|
36
|
+
public async GetJobStats(payload: z.infer<typeof GetJobStatsSchema>): Promise<JobStats> {
|
37
|
+
return await this.actionCall('GetJobStats', payload);
|
38
|
+
}
|
35
39
|
|
36
40
|
}
|
@@ -41,5 +41,17 @@ export type FailedJob = {
|
|
41
41
|
label: string;
|
42
42
|
data: number[];
|
43
43
|
backgroundColor: string;
|
44
|
-
}
|
44
|
+
}[];
|
45
45
|
}
|
46
|
+
|
47
|
+
export type JobStats = {
|
48
|
+
scheduledJobId: string;
|
49
|
+
total: number;
|
50
|
+
completed: number;
|
51
|
+
failed: number;
|
52
|
+
queued: number;
|
53
|
+
avgDay: number;
|
54
|
+
avgDuration: number;
|
55
|
+
lastRun: string;
|
56
|
+
}
|
57
|
+
|