@appconda/nextjs 1.0.160 → 1.0.171
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/actions/actionClient.d.ts +8 -2
- package/dist/actions/actionClient.js +21 -15
- package/dist/actions/auth.d.ts +1 -0
- package/dist/actions/auth.js +7 -0
- package/dist/actions/authOptions.d.ts +5 -0
- package/dist/actions/authOptions.js +235 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.js +4 -0
- package/dist/actions/nextAuthHandler.d.ts +1 -0
- package/dist/actions/nextAuthHandler.js +6 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -0
- package/dist/decorators/Cache.js +1 -0
- package/dist/decorators/CacheKey.js +1 -0
- package/dist/decorators/Invalidate.js +1 -0
- package/dist/enums/api-service.js +1 -0
- package/dist/enums/api.js +1 -0
- package/dist/enums/auth-method.js +1 -0
- package/dist/enums/browser.js +1 -0
- package/dist/enums/compression.js +1 -0
- package/dist/enums/credit-card.js +1 -0
- package/dist/enums/database-usage-range.js +1 -0
- package/dist/enums/email-template-locale.js +1 -0
- package/dist/enums/email-template-type.js +1 -0
- package/dist/enums/entities/EntityLimitType.js +1 -0
- package/dist/enums/entities/PropertyAttributeName.js +1 -0
- package/dist/enums/entities/PropertyCondition.js +1 -0
- package/dist/enums/entities/PropertyType.js +1 -0
- package/dist/enums/entities/PropertyValueType.js +1 -0
- package/dist/enums/entities/RowAccess.js +1 -0
- package/dist/enums/entities/ViewFilterCondition.js +1 -0
- package/dist/enums/execution-method.js +1 -0
- package/dist/enums/flag.js +1 -0
- package/dist/enums/function-usage-range.js +1 -0
- package/dist/enums/image-format.js +1 -0
- package/dist/enums/image-gravity.js +1 -0
- package/dist/enums/index-type.js +1 -0
- package/dist/enums/messaging-provider-type.js +1 -0
- package/dist/enums/name.js +1 -0
- package/dist/enums/o-auth-provider copy.js +1 -0
- package/dist/enums/password-hash.js +1 -0
- package/dist/enums/platform-type.js +1 -0
- package/dist/enums/project-usage-range.js +1 -0
- package/dist/enums/region.js +1 -0
- package/dist/enums/relation-mutate.js +1 -0
- package/dist/enums/relationship-type.js +1 -0
- package/dist/enums/resource-type.js +1 -0
- package/dist/enums/runtime.js +1 -0
- package/dist/enums/s-m-t-p-secure.js +1 -0
- package/dist/enums/shared/ApplicationLayout.js +1 -0
- package/dist/enums/shared/Colors.js +1 -0
- package/dist/enums/shared/InputType.js +1 -0
- package/dist/enums/shared/Periodicity.js +1 -0
- package/dist/enums/shared/SvgIcon.js +1 -0
- package/dist/enums/shared/Theme.js +1 -0
- package/dist/enums/sms-template-locale.js +1 -0
- package/dist/enums/sms-template-type.js +1 -0
- package/dist/enums/smtp-encryption.js +1 -0
- package/dist/enums/storage-usage-range.js +1 -0
- package/dist/enums/subscriptions/PricingModel.js +1 -0
- package/dist/enums/subscriptions/SubscriptionBillingPeriod.js +1 -0
- package/dist/enums/subscriptions/SubscriptionFeatureLimitType.js +1 -0
- package/dist/enums/subscriptions/SubscriptionPriceType.js +1 -0
- package/dist/enums/tenants/LinkedAccountStatus.js +1 -0
- package/dist/enums/tenants/TenantUserJoined.js +1 -0
- package/dist/enums/tenants/TenantUserStatus.js +1 -0
- package/dist/enums/tenants/TenantUserType.js +1 -0
- package/dist/enums/user-usage-range.js +1 -0
- package/dist/getAppcondaClient.js +5 -3
- package/dist/getSDKForCurrentUser.d.ts +8 -2
- package/dist/getSDKForCurrentUser.js +13 -5
- package/dist/getSDKForService.js +3 -1
- package/dist/getSDKForTenant.d.ts +20 -0
- package/dist/getSDKForTenant.js +44 -0
- package/dist/id.js +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +5 -1
- package/dist/inputFile.js +1 -0
- package/dist/lib/Cache/Adapter.js +1 -0
- package/dist/lib/Cache/Adapters/Filesystem.js +1 -0
- package/dist/lib/Cache/Adapters/Memory.js +1 -0
- package/dist/lib/Cache/Adapters/None.js +1 -0
- package/dist/lib/Cache/Adapters/Sharding.js +1 -0
- package/dist/lib/Cache/Cache.js +1 -0
- package/dist/lib/Cache/index.js +1 -0
- package/dist/lib/Cache/test.js +1 -0
- package/dist/lib/Registry/Registry.js +1 -0
- package/dist/lib/Registry/index.js +1 -0
- package/dist/lib/Services.js +1 -0
- package/dist/lib/crypto.d.ts +23 -0
- package/dist/lib/crypto.js +78 -0
- package/dist/lib/env.d.ts +1 -0
- package/dist/lib/env.js +137 -0
- package/dist/lib/errors.d.ts +70 -0
- package/dist/lib/errors.js +76 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +3 -0
- package/dist/lib/jwt.d.ts +12 -0
- package/dist/lib/jwt.js +103 -0
- package/dist/lib/types.d.ts +5 -0
- package/dist/lib/types.js +2 -0
- package/dist/models.js +1 -0
- package/dist/modules/account/actions.d.ts +6 -24
- package/dist/modules/account/actions.js +12 -10
- package/dist/modules/account/enums/authentication-factor.js +1 -0
- package/dist/modules/account/enums/authenticator-type.js +1 -0
- package/dist/modules/account/enums/o-auth-provider.js +1 -0
- package/dist/modules/account/index.js +1 -0
- package/dist/modules/account/schema.d.ts +8 -8
- package/dist/modules/account/schema.js +1 -0
- package/dist/modules/account/service.js +1 -0
- package/dist/modules/account/types.js +1 -0
- package/dist/modules/acl/service.d.ts +26 -0
- package/dist/modules/acl/service.js +27 -0
- package/dist/modules/agent/action.d.ts +28 -52
- package/dist/modules/agent/action.js +24 -34
- package/dist/modules/agent/index.js +1 -0
- package/dist/modules/agent/schema.d.ts +18 -18
- package/dist/modules/agent/schema.js +1 -0
- package/dist/modules/agent/service.js +1 -0
- package/dist/modules/agent/types.js +1 -0
- package/dist/modules/ai/index.js +1 -0
- package/dist/modules/ai/node/actions.d.ts +4 -4
- package/dist/modules/ai/node/actions.js +7 -8
- package/dist/modules/ai/node/index.js +1 -0
- package/dist/modules/ai/node/service.js +1 -0
- package/dist/modules/hooks/index.d.ts +3 -0
- package/dist/modules/hooks/index.js +4 -0
- package/dist/modules/hooks/lib/Hooks.d.ts +32 -0
- package/dist/modules/hooks/lib/Hooks.js +64 -0
- package/dist/modules/hooks/lib/handler.d.ts +12 -0
- package/dist/modules/hooks/lib/handler.js +23 -0
- package/dist/modules/hooks/lib/jobs/index.d.ts +2 -0
- package/dist/modules/hooks/lib/jobs/index.js +3 -0
- package/dist/modules/hooks/lib/jobs/job1.d.ts +1 -0
- package/dist/modules/hooks/lib/jobs/job1.js +16 -0
- package/dist/modules/hooks/lib/jobs/log-job.d.ts +1 -0
- package/dist/modules/hooks/lib/jobs/log-job.js +9 -0
- package/dist/modules/hooks/lib/wait.d.ts +8 -0
- package/dist/modules/hooks/lib/wait.js +13 -0
- package/dist/modules/index.d.ts +4 -0
- package/dist/modules/index.js +5 -0
- package/dist/modules/scheduled-job/action.d.ts +65 -0
- package/dist/modules/scheduled-job/action.js +163 -0
- package/dist/modules/scheduled-job/action2.d.ts +5 -0
- package/dist/modules/scheduled-job/action2.js +17 -0
- package/dist/modules/scheduled-job/index.d.ts +7 -0
- package/dist/modules/scheduled-job/index.js +8 -0
- package/dist/modules/scheduled-job/lib/Schedules.d.ts +34 -0
- package/dist/modules/scheduled-job/lib/Schedules.js +65 -0
- package/dist/modules/scheduled-job/lib/handler.d.ts +13 -0
- package/dist/modules/scheduled-job/lib/handler.js +23 -0
- package/dist/modules/scheduled-job/lib/jobs/index.d.ts +1 -0
- package/dist/modules/scheduled-job/lib/jobs/index.js +2 -0
- package/dist/modules/scheduled-job/lib/jobs/job1.d.ts +1 -0
- package/dist/modules/scheduled-job/lib/jobs/job1.js +10 -0
- package/dist/modules/scheduled-job/lib/jobs/log-job.d.ts +1 -0
- package/dist/modules/scheduled-job/lib/jobs/log-job.js +9 -0
- package/dist/modules/scheduled-job/lib/wait.d.ts +8 -0
- package/dist/modules/scheduled-job/lib/wait.js +13 -0
- package/dist/modules/scheduled-job/schema.d.ts +75 -0
- package/dist/modules/scheduled-job/schema.js +34 -0
- package/dist/modules/scheduled-job/service.d.ts +19 -0
- package/dist/modules/scheduled-job/service.js +43 -0
- package/dist/modules/scheduled-job/types.d.ts +65 -0
- package/dist/modules/scheduled-job/types.js +2 -0
- package/dist/modules/task/action.d.ts +77 -0
- package/dist/modules/task/action.js +136 -0
- package/dist/modules/task/index.d.ts +4 -0
- package/dist/modules/task/index.js +5 -0
- package/dist/modules/task/schema.d.ts +117 -0
- package/dist/modules/task/schema.js +48 -0
- package/dist/modules/task/service.d.ts +20 -0
- package/dist/modules/task/service.js +46 -0
- package/dist/modules/task/types.d.ts +84 -0
- package/dist/modules/task/types.js +2 -0
- package/dist/modules/tenant/actions.d.ts +48 -0
- package/dist/modules/tenant/actions.js +51 -0
- package/dist/modules/tenant/index.d.ts +3 -0
- package/dist/modules/tenant/index.js +4 -0
- package/dist/modules/tenant/tenant.d.ts +32 -0
- package/dist/modules/tenant/tenant.js +125 -0
- package/dist/modules/tenant/types.d.ts +11 -0
- package/dist/modules/tenant/types.js +2 -0
- package/dist/modules/waitlist/action.d.ts +31 -29
- package/dist/modules/waitlist/action.js +1 -0
- package/dist/modules/waitlist/index.js +1 -0
- package/dist/modules/waitlist/schema.d.ts +12 -12
- package/dist/modules/waitlist/schema.js +1 -0
- package/dist/modules/waitlist/service.js +1 -0
- package/dist/modules/waitlist/types.js +1 -0
- package/dist/permission.js +1 -0
- package/dist/query.js +1 -0
- package/dist/role.js +1 -0
- package/dist/schemas/nodes.js +1 -0
- package/dist/service-client.js +1 -0
- package/dist/service.js +1 -0
- package/dist/services/applets.js +1 -0
- package/dist/services/avatars.js +1 -0
- package/dist/services/chat-flow.js +1 -0
- package/dist/services/community.js +1 -0
- package/dist/services/configuration.js +1 -0
- package/dist/services/databases.js +1 -0
- package/dist/services/functions.js +1 -0
- package/dist/services/graphql.js +1 -0
- package/dist/services/health.js +1 -0
- package/dist/services/locale.js +1 -0
- package/dist/services/messaging.js +1 -0
- package/dist/services/permissions.js +1 -0
- package/dist/services/pricing.js +1 -0
- package/dist/services/projects.js +1 -0
- package/dist/services/roles.js +1 -0
- package/dist/services/schema.js +1 -0
- package/dist/services/storage.js +1 -0
- package/dist/services/subscription.js +1 -0
- package/dist/services/teams.js +1 -0
- package/dist/services/tenant-subscription.js +1 -0
- package/dist/services/users.js +1 -0
- package/package.json +4 -1
- package/src/actions/actionClient.ts +13 -6
- package/src/actions/auth.ts +7 -0
- package/src/actions/authOptions.ts +255 -0
- package/src/actions/index.ts +3 -0
- package/src/actions/nextAuthHandler.ts +9 -0
- package/src/client.ts +1 -1
- package/src/getAppcondaClient.ts +4 -3
- package/src/getSDKForCurrentUser.ts +12 -5
- package/src/getSDKForService.ts +2 -1
- package/src/getSDKForTenant.ts +52 -0
- package/src/index.ts +4 -2
- package/src/lib/crypto.ts +105 -0
- package/src/lib/env.ts +145 -0
- package/src/lib/errors.ts +138 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/jwt.ts +113 -0
- package/src/lib/types.ts +7 -0
- package/src/modules/account/actions.ts +16 -13
- package/src/modules/acl/service.ts +55 -0
- package/src/modules/agent/action.ts +27 -38
- package/src/modules/ai/node/actions.ts +6 -9
- package/src/modules/hooks/index.ts +5 -0
- package/src/modules/hooks/lib/Hooks.ts +103 -0
- package/src/modules/hooks/lib/handler.ts +27 -0
- package/src/modules/hooks/lib/jobs/index.ts +2 -0
- package/src/modules/hooks/lib/jobs/job1.ts +20 -0
- package/src/modules/hooks/lib/jobs/log-job.ts +10 -0
- package/src/modules/hooks/lib/wait.ts +17 -0
- package/src/modules/index.ts +5 -1
- package/src/modules/scheduled-job/action.ts +201 -0
- package/src/modules/scheduled-job/index.ts +8 -0
- package/src/modules/scheduled-job/lib/Schedules.ts +105 -0
- package/src/modules/scheduled-job/lib/handler.ts +27 -0
- package/src/modules/scheduled-job/lib/jobs/index.ts +2 -0
- package/src/modules/scheduled-job/lib/jobs/job1.ts +12 -0
- package/src/modules/scheduled-job/lib/wait.ts +17 -0
- package/src/modules/scheduled-job/schema.ts +55 -0
- package/src/modules/scheduled-job/service.ts +60 -0
- package/src/modules/scheduled-job/types.ts +78 -0
- package/src/modules/task/action.ts +167 -0
- package/src/modules/task/index.ts +4 -0
- package/src/modules/task/schema.ts +58 -0
- package/src/modules/task/service.ts +65 -0
- package/src/modules/task/types.ts +89 -0
- package/src/modules/tenant/actions.ts +57 -0
- package/src/modules/tenant/index.ts +3 -0
- package/src/{services → modules/tenant}/tenant.ts +3 -4
- package/src/modules/tenant/types.ts +12 -0
- package/tsconfig.json +4 -1
- package/dist/actions/nodes.d.ts +0 -4
- package/dist/actions/nodes.js +0 -15
- package/dist/enums/authentication-factor.d.ts +0 -6
- package/dist/enums/authentication-factor.js +0 -7
- package/dist/enums/authenticator-type.d.ts +0 -3
- package/dist/enums/authenticator-type.js +0 -4
- package/dist/enums/o-auth-provider.d.ts +0 -41
- package/dist/enums/o-auth-provider.js +0 -42
- package/dist/services/account.d.ts +0 -530
- package/dist/services/account.js +0 -1259
- package/dist/services/node.d.ts +0 -5
- package/dist/services/node.js +0 -11
@@ -0,0 +1,163 @@
|
|
1
|
+
'use server';
|
2
|
+
import { ZodError } from 'zod';
|
3
|
+
import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
|
4
|
+
import { UpdateJobSchema } from './schema';
|
5
|
+
import { AppcondaException } from '../../client';
|
6
|
+
export const CreateScheduledJob = async ({ parsedInput }) => {
|
7
|
+
try {
|
8
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
9
|
+
return { data: await scheduledJob.CreateScheduledJob(parsedInput) };
|
10
|
+
}
|
11
|
+
catch (error) {
|
12
|
+
console.error('Error in CreateScheduledJob:', error);
|
13
|
+
return { serverError: error.toString() };
|
14
|
+
}
|
15
|
+
};
|
16
|
+
export const ListScheduledJobs = async (parsedInput) => {
|
17
|
+
try {
|
18
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
19
|
+
return { data: await scheduledJob.ListScheduledJobs(parsedInput) };
|
20
|
+
}
|
21
|
+
catch (error) {
|
22
|
+
console.error('Error in ListScheduledJobs:', error);
|
23
|
+
return { serverError: error.toString() };
|
24
|
+
}
|
25
|
+
};
|
26
|
+
export const GetScheduledJob = async (parsedInput) => {
|
27
|
+
try {
|
28
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
29
|
+
return { data: await scheduledJob.GetScheduledJob(parsedInput) };
|
30
|
+
}
|
31
|
+
catch (error) {
|
32
|
+
console.error('Error in GetScheduledJob:', error);
|
33
|
+
return { serverError: error.toString() };
|
34
|
+
}
|
35
|
+
};
|
36
|
+
export const ListExecutions = async (parsedInput) => {
|
37
|
+
try {
|
38
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
39
|
+
return { data: await scheduledJob.ListExecutions(parsedInput) };
|
40
|
+
}
|
41
|
+
catch (error) {
|
42
|
+
console.error('Error in ListExecutions:', error);
|
43
|
+
return { serverError: error.toString() };
|
44
|
+
}
|
45
|
+
};
|
46
|
+
export const ListAvgExecutions = async (parsedInput) => {
|
47
|
+
try {
|
48
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
49
|
+
return { data: await scheduledJob.ListAvgExecutions(parsedInput) };
|
50
|
+
}
|
51
|
+
catch (error) {
|
52
|
+
console.error('Error in ListAvgExecutions:', error);
|
53
|
+
return { serverError: error.toString() };
|
54
|
+
}
|
55
|
+
};
|
56
|
+
export const UpdateJob = async (params) => {
|
57
|
+
try {
|
58
|
+
console.log('params', params);
|
59
|
+
const parsedInput = UpdateJobSchema.parse(params);
|
60
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
61
|
+
return { data: await scheduledJob.UpdateJob(parsedInput) };
|
62
|
+
}
|
63
|
+
catch (error) {
|
64
|
+
if (error instanceof AppcondaException) {
|
65
|
+
return { serverError: error.message };
|
66
|
+
}
|
67
|
+
if (error instanceof ZodError) {
|
68
|
+
return { validationError: error.toString() };
|
69
|
+
}
|
70
|
+
console.error('Error in UpdateJob:', error);
|
71
|
+
return { serverError: error.toString() };
|
72
|
+
}
|
73
|
+
};
|
74
|
+
export const GetDailyExecutionTrend = async (parsedInput) => {
|
75
|
+
try {
|
76
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
77
|
+
return { data: await scheduledJob.GetDailyExecutionTrend(parsedInput) };
|
78
|
+
}
|
79
|
+
catch (error) {
|
80
|
+
console.error('Error in GetDailyExecutionTrend:', error);
|
81
|
+
return { serverError: error.toString() };
|
82
|
+
}
|
83
|
+
};
|
84
|
+
export const GetTopFailedJobs = async (parsedInput) => {
|
85
|
+
try {
|
86
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
87
|
+
//@ts-ignore
|
88
|
+
return { data: await scheduledJob.GetTopFailedJobs(parsedInput) };
|
89
|
+
}
|
90
|
+
catch (error) {
|
91
|
+
console.error('Error in GetTopFailedJobs:', error);
|
92
|
+
return { serverError: error.toString() };
|
93
|
+
}
|
94
|
+
};
|
95
|
+
export const GetJobStats = async (parsedInput) => {
|
96
|
+
try {
|
97
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
98
|
+
return { data: await scheduledJob.GetJobStats(parsedInput) };
|
99
|
+
}
|
100
|
+
catch (error) {
|
101
|
+
console.error('Error in GetJobStats:', error);
|
102
|
+
return { serverError: error.toString() };
|
103
|
+
}
|
104
|
+
};
|
105
|
+
export const DeleteJob = async (parsedInput) => {
|
106
|
+
try {
|
107
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
108
|
+
await scheduledJob.DeleteJob(parsedInput);
|
109
|
+
return {};
|
110
|
+
}
|
111
|
+
catch (error) {
|
112
|
+
console.error('Error in DeleteJob:', error);
|
113
|
+
return { serverError: error.toString() };
|
114
|
+
}
|
115
|
+
};
|
116
|
+
export const ListJobsWithStats = async () => {
|
117
|
+
try {
|
118
|
+
const jobs = await ListScheduledJobs({});
|
119
|
+
const avg = await ListAvgExecutions({});
|
120
|
+
// Merge jobs with average execution data
|
121
|
+
const mergedJobs = jobs?.data?.map(job => {
|
122
|
+
const jobAvg = avg?.data?.find(a => a.scheduledJobId === job.id);
|
123
|
+
return {
|
124
|
+
...job,
|
125
|
+
totalExecutions: jobAvg?.totalExecutions || 0,
|
126
|
+
activeDays: jobAvg?.activeDays || 0,
|
127
|
+
avgExecutionsPerDay: jobAvg?.avgExecutionsPerDay || 0,
|
128
|
+
completed: jobAvg?.completed || 0,
|
129
|
+
failed: jobAvg?.failed || 0,
|
130
|
+
queued: jobAvg?.queued || 0,
|
131
|
+
};
|
132
|
+
}) || [];
|
133
|
+
return { data: mergedJobs };
|
134
|
+
}
|
135
|
+
catch (error) {
|
136
|
+
console.error('Error in ListJobsWithStats:', error);
|
137
|
+
return { serverError: error.toString() };
|
138
|
+
}
|
139
|
+
};
|
140
|
+
export const GetJobMetrics = async () => {
|
141
|
+
try {
|
142
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
143
|
+
return await scheduledJob.GetJobMetrics();
|
144
|
+
}
|
145
|
+
catch (error) {
|
146
|
+
console.error('Error in GetJobMetrics:', error);
|
147
|
+
throw new Error(error.toString());
|
148
|
+
}
|
149
|
+
};
|
150
|
+
export const QueueJob = async (parsedInput) => {
|
151
|
+
try {
|
152
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
153
|
+
await scheduledJob.QueueJob(parsedInput);
|
154
|
+
return true;
|
155
|
+
}
|
156
|
+
catch (error) {
|
157
|
+
if (error instanceof AppcondaException) {
|
158
|
+
console.error('Error in QueueJob:', error.message);
|
159
|
+
}
|
160
|
+
return false;
|
161
|
+
}
|
162
|
+
};
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvc2NoZWR1bGVkLWpvYi9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBR2IsT0FBTyxFQUFLLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQXFPLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU5USxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUE2RCxFQUEwRCxFQUFFO0lBQzNLLElBQUksQ0FBQztRQUVELE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixFQUFFLENBQUM7UUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBRXhFLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQzdDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsV0FBb0QsRUFBNEQsRUFBRTtJQUN0SixJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztJQUV2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Q0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxXQUEyQyxFQUFvQixFQUFFO0lBQzVGLElBQUksQ0FBQztRQUNELE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixFQUFFLENBQUM7UUFDdEQsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJztcblxuXG5pbXBvcnQgeyB6LCBab2RFcnJvciB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBhY3Rpb25DbGllbnQgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2FjdGlvbkNsaWVudCc7XG5pbXBvcnQgeyBnZXRTREtGb3JDdXJyZW50VXNlciB9IGZyb20gJy4uLy4uL2dldFNES0ZvckN1cnJlbnRVc2VyJztcbmltcG9ydCB7IENyZWF0ZVNjaGVkdWxlZEpvYlNjaGVtYSwgRGVsZXRlSm9iU2NoZW1hLCBHZXREYWlseUV4ZWN1dGlvblRyZW5kU2NoZW1hLCBHZXRKb2JTdGF0c1NjaGVtYSwgR2V0U2NoZWR1bGVkSm9iU2NoZW1hLCBHZXRUb3BGYWlsZWRKb2JzU2NoZW1hLCBMaXN0QXZnRXhlY3V0aW9uc1NjaGVtYSwgTGlzdEV4ZWN1dGlvbnNTY2hlbWEsIExpc3RTY2hlZHVsZWRKb2JzU2NoZW1hLCBRdWV1ZUpvYlNjaGVtYSwgVXBkYXRlSm9iU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgQXZnRXhlY3V0aW9uLCBFeGVjdXRpb24sIEV4ZWN1dGlvblRyZW5kLCBGYWlsZWRKb2IsIEpvYlN0YXRzLCBTY2hlZHVsZWRKb2IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFwcGNvbmRhRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vY2xpZW50JztcbmltcG9ydCB7IEFjdGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL2xpYi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVTY2hlZHVsZWRKb2IgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBDcmVhdGVTY2hlZHVsZWRKb2JTY2hlbWE+IH0pOiBQcm9taXNlPHsgZGF0YT86IFNjaGVkdWxlZEpvYiwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHNjaGVkdWxlZEpvYi5DcmVhdGVTY2hlZHVsZWRKb2IocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBDcmVhdGVTY2hlZHVsZWRKb2I6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBMaXN0U2NoZWR1bGVkSm9icyA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgTGlzdFNjaGVkdWxlZEpvYnNTY2hlbWE+KTogUHJvbWlzZTx7IGRhdGE/OiBTY2hlZHVsZWRKb2JbXSwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCBzY2hlZHVsZWRKb2IuTGlzdFNjaGVkdWxlZEpvYnMocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBMaXN0U2NoZWR1bGVkSm9iczonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEdldFNjaGVkdWxlZEpvYiA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgR2V0U2NoZWR1bGVkSm9iU2NoZW1hPik6IFByb21pc2U8eyBkYXRhPzogU2NoZWR1bGVkSm9iLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgc2NoZWR1bGVkSm9iLkdldFNjaGVkdWxlZEpvYihwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIEdldFNjaGVkdWxlZEpvYjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExpc3RFeGVjdXRpb25zID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBMaXN0RXhlY3V0aW9uc1NjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IEV4ZWN1dGlvbltdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgc2NoZWR1bGVkSm9iLkxpc3RFeGVjdXRpb25zKHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gTGlzdEV4ZWN1dGlvbnM6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBMaXN0QXZnRXhlY3V0aW9ucyA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgTGlzdEF2Z0V4ZWN1dGlvbnNTY2hlbWE+KTogUHJvbWlzZTx7IGRhdGE/OiBBdmdFeGVjdXRpb25bXSwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHNjaGVkdWxlZEpvYi5MaXN0QXZnRXhlY3V0aW9ucyhwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIExpc3RBdmdFeGVjdXRpb25zOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgVXBkYXRlSm9iID0gYXN5bmMgKHBhcmFtczogei5pbmZlcjx0eXBlb2YgVXBkYXRlSm9iU2NoZW1hPik6IFByb21pc2U8QWN0aW9uUmVzdWx0PFNjaGVkdWxlZEpvYj4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zb2xlLmxvZygncGFyYW1zJywgcGFyYW1zKTtcbiAgICAgICAgY29uc3QgcGFyc2VkSW5wdXQgPSBVcGRhdGVKb2JTY2hlbWEucGFyc2UocGFyYW1zKTtcbiAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHNjaGVkdWxlZEpvYi5VcGRhdGVKb2IocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBcHBjb25kYUV4Y2VwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLm1lc3NhZ2UgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBab2RFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWRhdGlvbkVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gVXBkYXRlSm9iOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgR2V0RGFpbHlFeGVjdXRpb25UcmVuZCA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgR2V0RGFpbHlFeGVjdXRpb25UcmVuZFNjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IEV4ZWN1dGlvblRyZW5kW10sIHNlcnZlckVycm9yPzogc3RyaW5nIH0+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCBzY2hlZHVsZWRKb2IuR2V0RGFpbHlFeGVjdXRpb25UcmVuZChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIEdldERhaWx5RXhlY3V0aW9uVHJlbmQ6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cblxuXG5leHBvcnQgY29uc3QgR2V0VG9wRmFpbGVkSm9icyA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgR2V0VG9wRmFpbGVkSm9ic1NjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IEZhaWxlZEpvYltdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHNjaGVkdWxlZEpvYi5HZXRUb3BGYWlsZWRKb2JzKHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gR2V0VG9wRmFpbGVkSm9iczonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEdldEpvYlN0YXRzID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBHZXRKb2JTdGF0c1NjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IEpvYlN0YXRzLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgc2NoZWR1bGVkSm9iLkdldEpvYlN0YXRzKHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gR2V0Sm9iU3RhdHM6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWxldGVKb2IgPSBhc3luYyAocGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIERlbGV0ZUpvYlNjaGVtYT4pOiBQcm9taXNlPEFjdGlvblJlc3VsdDx2b2lkPj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICBhd2FpdCBzY2hlZHVsZWRKb2IuRGVsZXRlSm9iKHBhcnNlZElucHV0KTtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIERlbGV0ZUpvYjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExpc3RKb2JzV2l0aFN0YXRzID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3Qgam9icyA9IGF3YWl0IExpc3RTY2hlZHVsZWRKb2JzKHt9KTtcbiAgICAgICAgY29uc3QgYXZnID0gYXdhaXQgTGlzdEF2Z0V4ZWN1dGlvbnMoe30pO1xuXG4gICAgICAgIC8vIE1lcmdlIGpvYnMgd2l0aCBhdmVyYWdlIGV4ZWN1dGlvbiBkYXRhXG4gICAgICAgIGNvbnN0IG1lcmdlZEpvYnMgPSBqb2JzPy5kYXRhPy5tYXAoam9iID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGpvYkF2ZyA9IGF2Zz8uZGF0YT8uZmluZChhID0+IGEuc2NoZWR1bGVkSm9iSWQgPT09IGpvYi5pZCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmpvYixcbiAgICAgICAgICAgICAgICB0b3RhbEV4ZWN1dGlvbnM6IGpvYkF2Zz8udG90YWxFeGVjdXRpb25zIHx8IDAsXG4gICAgICAgICAgICAgICAgYWN0aXZlRGF5czogam9iQXZnPy5hY3RpdmVEYXlzIHx8IDAsXG4gICAgICAgICAgICAgICAgYXZnRXhlY3V0aW9uc1BlckRheTogam9iQXZnPy5hdmdFeGVjdXRpb25zUGVyRGF5IHx8IDAsXG4gICAgICAgICAgICAgICAgY29tcGxldGVkOiBqb2JBdmc/LmNvbXBsZXRlZCB8fCAwLFxuICAgICAgICAgICAgICAgIGZhaWxlZDogam9iQXZnPy5mYWlsZWQgfHwgMCxcbiAgICAgICAgICAgICAgICBxdWV1ZWQ6IGpvYkF2Zz8ucXVldWVkIHx8IDAsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KSB8fCBbXTtcblxuICAgICAgICByZXR1cm4geyBkYXRhOiBtZXJnZWRKb2JzIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBMaXN0Sm9ic1dpdGhTdGF0czonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEdldEpvYk1ldHJpY3MgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBzY2hlZHVsZWRKb2IgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBzY2hlZHVsZWRKb2IuR2V0Sm9iTWV0cmljcygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIEdldEpvYk1ldHJpY3M6JywgZXJyb3IpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IudG9TdHJpbmcoKSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IFF1ZXVlSm9iID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBRdWV1ZUpvYlNjaGVtYT4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCB7IHNjaGVkdWxlZEpvYiB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgYXdhaXQgc2NoZWR1bGVkSm9iLlF1ZXVlSm9iKHBhcnNlZElucHV0KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBwY29uZGFFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIFF1ZXVlSm9iOicsIGVycm9yLm1lc3NhZ2UpO1xuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn07XG5cblxuXG5cblxuXG5cblxuXG5cblxuIl19
|
@@ -0,0 +1,17 @@
|
|
1
|
+
'use server';
|
2
|
+
import { UpdateJobSchema } from "./schema";
|
3
|
+
import { getSDKForCurrentUser } from "../../getSDKForCurrentUser";
|
4
|
+
export const UpdateJob = async (params) => {
|
5
|
+
try {
|
6
|
+
const parsedInput = UpdateJobSchema.parse(params);
|
7
|
+
const { scheduledJob } = await getSDKForCurrentUser();
|
8
|
+
return await scheduledJob.UpdateJob(parsedInput);
|
9
|
+
}
|
10
|
+
catch (error) {
|
11
|
+
console.error('Error in UpdateJob:', error);
|
12
|
+
return {
|
13
|
+
serverError: error.toString()
|
14
|
+
};
|
15
|
+
}
|
16
|
+
};
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2IvYWN0aW9uMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQyxZQUFZLENBQUM7QUFJZCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2pFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxLQUFLLEVBQUUsTUFBdUMsRUFBRSxFQUFFO0lBQ3BFLElBQUksQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVyRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTztZQUNILFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1NBQ2hDLENBQUE7SUFDTCxDQUFDO0FBQ0wsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiICd1c2Ugc2VydmVyJztcblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgVXBkYXRlSm9iU2NoZW1hIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRTREtGb3JDdXJyZW50VXNlciB9IGZyb20gXCIuLi8uLi9nZXRTREtGb3JDdXJyZW50VXNlclwiO1xuXG5cbiBleHBvcnQgY29uc3QgVXBkYXRlSm9iID0gYXN5bmMgKHBhcmFtczogei5pbmZlcjx0eXBlb2YgVXBkYXRlSm9iU2NoZW1hPikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkSW5wdXQgPSBVcGRhdGVKb2JTY2hlbWEucGFyc2UocGFyYW1zKTtcbiAgICAgICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHNjaGVkdWxlZEpvYi5VcGRhdGVKb2IocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBVcGRhdGVKb2I6JywgZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSJdfQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export * from './action';
|
2
|
+
export * from './schema';
|
3
|
+
export * from './service';
|
4
|
+
export * from './types';
|
5
|
+
export * from './lib/Schedules';
|
6
|
+
export * from './lib/handler';
|
7
|
+
import './lib/jobs';
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9zY2hlZHVsZWQtam9iL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TY2hlZHVsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGFuZGxlcic7XG5cbmltcG9ydCAnLi9saWIvam9icyc7Il19
|
@@ -0,0 +1,34 @@
|
|
1
|
+
type TaskPayload = {
|
2
|
+
timestamp: Date;
|
3
|
+
lastTimestamp?: Date;
|
4
|
+
timezone: string;
|
5
|
+
};
|
6
|
+
type TaskContext = {
|
7
|
+
retriesLeft: number;
|
8
|
+
};
|
9
|
+
type TaskArgs = {
|
10
|
+
id: string;
|
11
|
+
name: string;
|
12
|
+
cron: string;
|
13
|
+
maxDuration?: number;
|
14
|
+
retries?: number;
|
15
|
+
run: (payload: TaskPayload, tools: {
|
16
|
+
ctx: TaskContext;
|
17
|
+
}) => Promise<void> | void;
|
18
|
+
};
|
19
|
+
export declare class Schedules {
|
20
|
+
private lastRunTimestamps;
|
21
|
+
private Tasks;
|
22
|
+
task(args: TaskArgs): void;
|
23
|
+
run(taskId: string): Promise<void>;
|
24
|
+
private runWithRetry;
|
25
|
+
toJSON(): {
|
26
|
+
id: string;
|
27
|
+
name: string;
|
28
|
+
cron: string;
|
29
|
+
maxDuration: number | undefined;
|
30
|
+
retries: number | undefined;
|
31
|
+
}[];
|
32
|
+
}
|
33
|
+
export declare const schedules: Schedules;
|
34
|
+
export {};
|
@@ -0,0 +1,65 @@
|
|
1
|
+
export class Schedules {
|
2
|
+
constructor() {
|
3
|
+
this.lastRunTimestamps = {};
|
4
|
+
this.Tasks = [];
|
5
|
+
}
|
6
|
+
task(args) {
|
7
|
+
this.Tasks.push(args);
|
8
|
+
}
|
9
|
+
async run(taskId) {
|
10
|
+
const now = new Date();
|
11
|
+
const lastTimestamp = this.lastRunTimestamps[taskId];
|
12
|
+
const payload = {
|
13
|
+
timestamp: now,
|
14
|
+
lastTimestamp,
|
15
|
+
timezone: "UTC",
|
16
|
+
};
|
17
|
+
this.lastRunTimestamps[taskId] = now;
|
18
|
+
const context = {
|
19
|
+
retriesLeft: this.Tasks.find(task => task.id === taskId)?.retries ?? 0,
|
20
|
+
};
|
21
|
+
await this.runWithRetry(this.Tasks.find(task => task.id === taskId), payload, context);
|
22
|
+
}
|
23
|
+
async runWithRetry(task, payload, ctx) {
|
24
|
+
const start = Date.now();
|
25
|
+
try {
|
26
|
+
await Promise.race([
|
27
|
+
task.run(payload, { ctx }),
|
28
|
+
timeout(task.maxDuration ?? 60),
|
29
|
+
]);
|
30
|
+
log("success", { taskId: task.id, name: task.name, time: new Date().toISOString() });
|
31
|
+
}
|
32
|
+
catch (err) {
|
33
|
+
//@ts-ignore
|
34
|
+
log("error", { taskId: task.id, name: task.name, error: err });
|
35
|
+
if (ctx.retriesLeft > 0) {
|
36
|
+
ctx.retriesLeft -= 1;
|
37
|
+
//@ts-ignore
|
38
|
+
log("warn", { taskId: task.id, name: task.name, msg: "Retrying..." });
|
39
|
+
await this.runWithRetry(task, payload, ctx);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
finally {
|
43
|
+
const duration = Date.now() - start;
|
44
|
+
//@ts-ignore
|
45
|
+
log("info", { taskId: task.id, name: task.name, durationMs: duration });
|
46
|
+
}
|
47
|
+
}
|
48
|
+
toJSON() {
|
49
|
+
return this.Tasks.map(task => ({
|
50
|
+
id: task.id,
|
51
|
+
name: task.name,
|
52
|
+
cron: task.cron,
|
53
|
+
maxDuration: task.maxDuration,
|
54
|
+
retries: task.retries,
|
55
|
+
}));
|
56
|
+
}
|
57
|
+
}
|
58
|
+
function log(arg0, arg1) {
|
59
|
+
// console.log(arg0, arg1);
|
60
|
+
}
|
61
|
+
function timeout(seconds) {
|
62
|
+
return new Promise((_, reject) => setTimeout(() => reject(new Error("Timeout reached")), seconds * 1000));
|
63
|
+
}
|
64
|
+
export const schedules = new Schedules();
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvc2NoZWR1bGVkLWpvYi9saWIvU2NoZWR1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCQSxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUNZLHNCQUFpQixHQUF5QixFQUFFLENBQUM7UUFDN0MsVUFBSyxHQUFlLEVBQUUsQ0FBQztJQWtFbkMsQ0FBQztJQWhFVSxJQUFJLENBQUMsSUFBYztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFjO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJELE1BQU0sT0FBTyxHQUFnQjtZQUN6QixTQUFTLEVBQUUsR0FBRztZQUNkLGFBQWE7WUFDYixRQUFRLEVBQUUsS0FBSztTQUNsQixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUVyQyxNQUFNLE9BQU8sR0FBZ0I7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQztTQUN6RSxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFHNUYsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZLENBQ3RCLElBQWMsRUFDZCxPQUFvQixFQUNwQixHQUFnQjtRQUVoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQzthQUNsQyxDQUFDLENBQUM7WUFDSCxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1gsWUFBWTtZQUNaLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUUvRCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO2dCQUNyQixZQUFZO2dCQUNaLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztnQkFDdEUsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEQsQ0FBQztRQUNMLENBQUM7Z0JBQVMsQ0FBQztZQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFDcEMsWUFBWTtZQUNaLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU07UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztDQUNKO0FBRUQsU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQXFEO0lBQzVFLDJCQUEyQjtBQUMvQixDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZTtJQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FDekUsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxudHlwZSBUYXNrUGF5bG9hZCA9IHtcbiAgICB0aW1lc3RhbXA6IERhdGU7XG4gICAgbGFzdFRpbWVzdGFtcD86IERhdGU7XG4gICAgdGltZXpvbmU6IHN0cmluZztcbn07XG5cbnR5cGUgVGFza0NvbnRleHQgPSB7XG4gICAgcmV0cmllc0xlZnQ6IG51bWJlcjtcbn07XG5cbnR5cGUgVGFza0FyZ3MgPSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY3Jvbjogc3RyaW5nO1xuICAgIG1heER1cmF0aW9uPzogbnVtYmVyOyAvLyBzYW5peWVcbiAgICByZXRyaWVzPzogbnVtYmVyO1xuICAgIHJ1bjogKFxuICAgICAgICBwYXlsb2FkOiBUYXNrUGF5bG9hZCxcbiAgICAgICAgdG9vbHM6IHsgY3R4OiBUYXNrQ29udGV4dCB9XG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbn07XG5cbmV4cG9ydCBjbGFzcyBTY2hlZHVsZXMge1xuICAgIHByaXZhdGUgbGFzdFJ1blRpbWVzdGFtcHM6IFJlY29yZDxzdHJpbmcsIERhdGU+ID0ge307XG4gICAgcHJpdmF0ZSBUYXNrczogVGFza0FyZ3NbXSA9IFtdO1xuXG4gICAgcHVibGljIHRhc2soYXJnczogVGFza0FyZ3MpIHtcbiAgICAgICAgdGhpcy5UYXNrcy5wdXNoKGFyZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBydW4odGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgbGFzdFRpbWVzdGFtcCA9IHRoaXMubGFzdFJ1blRpbWVzdGFtcHNbdGFza0lkXTtcblxuICAgICAgICBjb25zdCBwYXlsb2FkOiBUYXNrUGF5bG9hZCA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbm93LFxuICAgICAgICAgICAgbGFzdFRpbWVzdGFtcCxcbiAgICAgICAgICAgIHRpbWV6b25lOiBcIlVUQ1wiLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubGFzdFJ1blRpbWVzdGFtcHNbdGFza0lkXSA9IG5vdztcblxuICAgICAgICBjb25zdCBjb250ZXh0OiBUYXNrQ29udGV4dCA9IHtcbiAgICAgICAgICAgIHJldHJpZXNMZWZ0OiB0aGlzLlRhc2tzLmZpbmQodGFzayA9PiB0YXNrLmlkID09PSB0YXNrSWQpPy5yZXRyaWVzID8/IDAsXG4gICAgICAgIH07XG5cbiAgICAgICAgYXdhaXQgdGhpcy5ydW5XaXRoUmV0cnkodGhpcy5UYXNrcy5maW5kKHRhc2sgPT4gdGFzay5pZCA9PT0gdGFza0lkKSEsIHBheWxvYWQsIGNvbnRleHQpO1xuXG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHJ1bldpdGhSZXRyeShcbiAgICAgICAgdGFzazogVGFza0FyZ3MsXG4gICAgICAgIHBheWxvYWQ6IFRhc2tQYXlsb2FkLFxuICAgICAgICBjdHg6IFRhc2tDb250ZXh0XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgICAgICAgICB0YXNrLnJ1bihwYXlsb2FkLCB7IGN0eCB9KSxcbiAgICAgICAgICAgICAgICB0aW1lb3V0KHRhc2subWF4RHVyYXRpb24gPz8gNjApLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBsb2coXCJzdWNjZXNzXCIsIHsgdGFza0lkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUsIHRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIGxvZyhcImVycm9yXCIsIHsgdGFza0lkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUsIGVycm9yOiBlcnIgfSk7XG5cbiAgICAgICAgICAgIGlmIChjdHgucmV0cmllc0xlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY3R4LnJldHJpZXNMZWZ0IC09IDE7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgbG9nKFwid2FyblwiLCB7IHRhc2tJZDogdGFzay5pZCwgbmFtZTogdGFzay5uYW1lLCBtc2c6IFwiUmV0cnlpbmcuLi5cIiB9KTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJ1bldpdGhSZXRyeSh0YXNrLCBwYXlsb2FkLCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnQ7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIGxvZyhcImluZm9cIiwgeyB0YXNrSWQ6IHRhc2suaWQsIG5hbWU6IHRhc2submFtZSwgZHVyYXRpb25NczogZHVyYXRpb24gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5UYXNrcy5tYXAodGFzayA9PiAoe1xuICAgICAgICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICAgICAgICBuYW1lOiB0YXNrLm5hbWUsXG4gICAgICAgICAgICBjcm9uOiB0YXNrLmNyb24sXG4gICAgICAgICAgICBtYXhEdXJhdGlvbjogdGFzay5tYXhEdXJhdGlvbixcbiAgICAgICAgICAgIHJldHJpZXM6IHRhc2sucmV0cmllcyxcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gbG9nKGFyZzA6IHN0cmluZywgYXJnMTogeyB0YXNrSWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyB0aW1lOiBzdHJpbmc7IH0pIHtcbiAgICAvLyBjb25zb2xlLmxvZyhhcmcwLCBhcmcxKTtcbn1cblxuZnVuY3Rpb24gdGltZW91dChzZWNvbmRzOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKFwiVGltZW91dCByZWFjaGVkXCIpKSwgc2Vjb25kcyAqIDEwMDApXG4gICAgKTtcbn1cblxuXG5leHBvcnQgY29uc3Qgc2NoZWR1bGVzID0gbmV3IFNjaGVkdWxlcygpOyJdfQ==
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { NextRequest, NextResponse } from 'next/server';
|
2
|
+
import './jobs';
|
3
|
+
export declare function scheduledJobHandler(request: NextRequest, res: NextResponse): Promise<NextResponse<{
|
4
|
+
message: string;
|
5
|
+
}> | NextResponse<{
|
6
|
+
schedules: {
|
7
|
+
id: string;
|
8
|
+
name: string;
|
9
|
+
cron: string;
|
10
|
+
maxDuration: number | undefined;
|
11
|
+
retries: number | undefined;
|
12
|
+
}[];
|
13
|
+
}>>;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { NextResponse } from 'next/server';
|
2
|
+
import './jobs';
|
3
|
+
import { schedules } from './Schedules';
|
4
|
+
/* export async function GET() {
|
5
|
+
return NextResponse.json({ schedules: schedules.toJSON() },
|
6
|
+
{ status: 200 });
|
7
|
+
}
|
8
|
+
|
9
|
+
export async function POST(request: Request) {
|
10
|
+
|
11
|
+
} */
|
12
|
+
export async function scheduledJobHandler(request, res) {
|
13
|
+
if (request.method === 'POST') {
|
14
|
+
const body = await request.json();
|
15
|
+
const taskId = body.taskId;
|
16
|
+
schedules.run(taskId);
|
17
|
+
return NextResponse.json({ message: 'Callback triggered' }, { status: 200 });
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
return NextResponse.json({ schedules: schedules.toJSON() }, { status: 200 });
|
21
|
+
}
|
22
|
+
}
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2IvbGliL2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4RCxPQUFPLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDOzs7Ozs7O0lBT0k7QUFFSixNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQW9CLEVBQUUsR0FBaUI7SUFDL0UsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFDeEQsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFDeEQsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5leHRSZXF1ZXN0LCBOZXh0UmVzcG9uc2UgfSBmcm9tICduZXh0L3NlcnZlcic7XG5cbmltcG9ydCAnLi9qb2JzJztcbmltcG9ydCB7IHNjaGVkdWxlcyB9IGZyb20gJy4vU2NoZWR1bGVzJztcblxuLyogZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIEdFVCgpIHtcbiAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHsgc2NoZWR1bGVzOiBzY2hlZHVsZXMudG9KU09OKCkgfSxcbiAgICB7IHN0YXR1czogMjAwIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gUE9TVChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG5cbn0gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNjaGVkdWxlZEpvYkhhbmRsZXIocmVxdWVzdDogTmV4dFJlcXVlc3QsIHJlczogTmV4dFJlc3BvbnNlKSB7XG4gIGlmIChyZXF1ZXN0Lm1ldGhvZCA9PT0gJ1BPU1QnKSB7XG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcXVlc3QuanNvbigpO1xuICAgIGNvbnN0IHRhc2tJZCA9IGJvZHkudGFza0lkO1xuICAgIHNjaGVkdWxlcy5ydW4odGFza0lkKTtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBtZXNzYWdlOiAnQ2FsbGJhY2sgdHJpZ2dlcmVkJyB9LFxuICAgICAgeyBzdGF0dXM6IDIwMCB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBzY2hlZHVsZXM6IHNjaGVkdWxlcy50b0pTT04oKSB9LFxuICAgICAgeyBzdGF0dXM6IDIwMCB9KTtcbiAgfVxufSBcblxuIl19
|
@@ -0,0 +1 @@
|
|
1
|
+
import './job1';
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import './job1';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zY2hlZHVsZWQtam9iL2xpYi9qb2JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgJy4vam9iMSc7Il19
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { schedules } from "../Schedules";
|
2
|
+
schedules.task({
|
3
|
+
name: "report",
|
4
|
+
id: "report",
|
5
|
+
cron: "*/50 * * * *",
|
6
|
+
run: async () => {
|
7
|
+
console.log("hello from job 1");
|
8
|
+
},
|
9
|
+
});
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2IvbGliL2pvYnMvam9iMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLEVBQUUsRUFBRSxRQUFRO0lBQ1osSUFBSSxFQUFFLGNBQWM7SUFDcEIsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzY2hlZHVsZXMgfSBmcm9tIFwiLi4vU2NoZWR1bGVzXCI7XG5cbnNjaGVkdWxlcy50YXNrKHtcbiAgICBuYW1lOiBcInJlcG9ydFwiLFxuICAgIGlkOiBcInJlcG9ydFwiLFxuICAgIGNyb246IFwiKi81MCAqICogKiAqXCIsXG4gICAgcnVuOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaGVsbG8gZnJvbSBqb2IgMVwiKTtcbiAgICB9LFxufSk7XG5cblxuIl19
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { schedules } from "../Schedules";
|
2
|
+
schedules.task({
|
3
|
+
id: "test",
|
4
|
+
cron: "*/50 * * * * *",
|
5
|
+
run: async () => {
|
6
|
+
console.log("test");
|
7
|
+
},
|
8
|
+
});
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWpvYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2IvbGliL2pvYnMvbG9nLWpvYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTTtJQUNWLElBQUksRUFBRSxnQkFBZ0I7SUFDdEIsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NoZWR1bGVzIH0gZnJvbSBcIi4uL1NjaGVkdWxlc1wiO1xuXG5zY2hlZHVsZXMudGFzayh7XG4gICAgaWQ6IFwidGVzdFwiLFxuICAgIGNyb246IFwiKi81MCAqICogKiAqICpcIixcbiAgICBydW46IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJ0ZXN0XCIpO1xuICAgIH0sXG59KTsiXX0=
|
@@ -0,0 +1,13 @@
|
|
1
|
+
export const wait = {
|
2
|
+
for: ({ seconds }) => new Promise((resolve) => setTimeout(resolve, seconds * 1000)),
|
3
|
+
until: ({ date }) => {
|
4
|
+
const now = new Date();
|
5
|
+
const diff = date.getTime() - now.getTime();
|
6
|
+
if (diff <= 0) {
|
7
|
+
// Hedef tarih zaten geçmişse hiç bekleme
|
8
|
+
return Promise.resolve();
|
9
|
+
}
|
10
|
+
return new Promise((resolve) => setTimeout(resolve, diff));
|
11
|
+
},
|
12
|
+
};
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2IvbGliL3dhaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUF1QixFQUFFLEVBQUUsQ0FDeEMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRS9ELEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFrQixFQUFFLEVBQUU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTVDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2QseUNBQXlDO1lBQ3pDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgd2FpdCA9IHtcbiAgICBmb3I6ICh7IHNlY29uZHMgfTogeyBzZWNvbmRzOiBudW1iZXIgfSkgPT5cbiAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHNlY29uZHMgKiAxMDAwKSksXG4gIFxuICAgIHVudGlsOiAoeyBkYXRlIH06IHsgZGF0ZTogRGF0ZSB9KSA9PiB7XG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgY29uc3QgZGlmZiA9IGRhdGUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKTtcbiAgXG4gICAgICBpZiAoZGlmZiA8PSAwKSB7XG4gICAgICAgIC8vIEhlZGVmIHRhcmloIHphdGVuIGdlw6dtacWfc2UgaGnDpyBiZWtsZW1lXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGlmZikpO1xuICAgIH0sXG4gIH07XG4gICJdfQ==
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import { z } from "zod";
|
2
|
+
export declare const CreateScheduledJobSchema: z.ZodObject<{
|
3
|
+
id: z.ZodOptional<z.ZodString>;
|
4
|
+
name: z.ZodString;
|
5
|
+
description: z.ZodOptional<z.ZodString>;
|
6
|
+
cron: z.ZodString;
|
7
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
9
|
+
name: string;
|
10
|
+
enabled: boolean;
|
11
|
+
cron: string;
|
12
|
+
description?: string | undefined;
|
13
|
+
id?: string | undefined;
|
14
|
+
}, {
|
15
|
+
name: string;
|
16
|
+
cron: string;
|
17
|
+
description?: string | undefined;
|
18
|
+
enabled?: boolean | undefined;
|
19
|
+
id?: string | undefined;
|
20
|
+
}>;
|
21
|
+
export declare const ListScheduledJobsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
22
|
+
export declare const GetScheduledJobSchema: z.ZodObject<{
|
23
|
+
id: z.ZodString;
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
25
|
+
id: string;
|
26
|
+
}, {
|
27
|
+
id: string;
|
28
|
+
}>;
|
29
|
+
export declare const ListExecutionsSchema: z.ZodObject<{
|
30
|
+
scheduledJobId: z.ZodString;
|
31
|
+
status: z.ZodOptional<z.ZodString>;
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
33
|
+
scheduledJobId: string;
|
34
|
+
status?: string | undefined;
|
35
|
+
}, {
|
36
|
+
scheduledJobId: string;
|
37
|
+
status?: string | undefined;
|
38
|
+
}>;
|
39
|
+
export declare const ListAvgExecutionsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
40
|
+
export declare const UpdateJobSchema: z.ZodObject<{
|
41
|
+
id: z.ZodString;
|
42
|
+
name: z.ZodOptional<z.ZodString>;
|
43
|
+
description: z.ZodOptional<z.ZodString>;
|
44
|
+
cron: z.ZodOptional<z.ZodString>;
|
45
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
47
|
+
id: string;
|
48
|
+
name?: string | undefined;
|
49
|
+
description?: string | undefined;
|
50
|
+
enabled?: boolean | undefined;
|
51
|
+
cron?: string | undefined;
|
52
|
+
}, {
|
53
|
+
id: string;
|
54
|
+
name?: string | undefined;
|
55
|
+
description?: string | undefined;
|
56
|
+
enabled?: boolean | undefined;
|
57
|
+
cron?: string | undefined;
|
58
|
+
}>;
|
59
|
+
export declare const GetDailyExecutionTrendSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
60
|
+
export declare const GetTopFailedJobsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
61
|
+
export declare const GetJobStatsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
62
|
+
export declare const DeleteJobSchema: z.ZodObject<{
|
63
|
+
id: z.ZodString;
|
64
|
+
}, "strip", z.ZodTypeAny, {
|
65
|
+
id: string;
|
66
|
+
}, {
|
67
|
+
id: string;
|
68
|
+
}>;
|
69
|
+
export declare const QueueJobSchema: z.ZodObject<{
|
70
|
+
id: z.ZodString;
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
72
|
+
id: string;
|
73
|
+
}, {
|
74
|
+
id: string;
|
75
|
+
}>;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { z } from "zod";
|
2
|
+
export const CreateScheduledJobSchema = z.object({
|
3
|
+
id: z.string().optional(),
|
4
|
+
name: z.string(),
|
5
|
+
description: z.string().optional(),
|
6
|
+
cron: z.string(),
|
7
|
+
enabled: z.boolean().optional().default(true),
|
8
|
+
});
|
9
|
+
export const ListScheduledJobsSchema = z.object({});
|
10
|
+
export const GetScheduledJobSchema = z.object({
|
11
|
+
id: z.string()
|
12
|
+
});
|
13
|
+
export const ListExecutionsSchema = z.object({
|
14
|
+
scheduledJobId: z.string(),
|
15
|
+
status: z.string().optional()
|
16
|
+
});
|
17
|
+
export const ListAvgExecutionsSchema = z.object({});
|
18
|
+
export const UpdateJobSchema = z.object({
|
19
|
+
id: z.string(),
|
20
|
+
name: z.string().optional(),
|
21
|
+
description: z.string().optional(),
|
22
|
+
cron: z.string().optional(),
|
23
|
+
enabled: z.boolean().optional(),
|
24
|
+
});
|
25
|
+
export const GetDailyExecutionTrendSchema = z.object({});
|
26
|
+
export const GetTopFailedJobsSchema = z.object({});
|
27
|
+
export const GetJobStatsSchema = z.object({});
|
28
|
+
export const DeleteJobSchema = z.object({
|
29
|
+
id: z.string()
|
30
|
+
});
|
31
|
+
export const QueueJobSchema = z.object({
|
32
|
+
id: z.string()
|
33
|
+
});
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvc2NoZWR1bGVkLWpvYi9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUNoRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBRS9DLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNoQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQy9DLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2QsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDbEMsQ0FBQyxDQUFDO0FBR0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUVwRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBRTlDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFFekMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjaGVkdWxlZEpvYlNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjcm9uOiB6LnN0cmluZygpLFxuICAgIGVuYWJsZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCkuZGVmYXVsdCh0cnVlKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFNjaGVkdWxlZEpvYnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICBcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0U2NoZWR1bGVkSm9iU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RFeGVjdXRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHNjaGVkdWxlZEpvYklkOiB6LnN0cmluZygpLFxuICAgIHN0YXR1czogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcbiAgICBcbmV4cG9ydCBjb25zdCBMaXN0QXZnRXhlY3V0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlSm9iU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNyb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBlbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbiAgICBcbmV4cG9ydCBjb25zdCBHZXREYWlseUV4ZWN1dGlvblRyZW5kU2NoZW1hID0gei5vYmplY3Qoe1xuICAgXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldFRvcEZhaWxlZEpvYnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICBcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0Sm9iU3RhdHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICBcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlSm9iU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IFF1ZXVlSm9iU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpXG59KTtcblxuIl19
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import z from "zod";
|
2
|
+
import { ServiceClient } from "../../service-client";
|
3
|
+
import { CreateScheduledJobSchema, ListScheduledJobsSchema, GetScheduledJobSchema, ListExecutionsSchema, GetDailyExecutionTrendSchema, GetTopFailedJobsSchema, GetJobStatsSchema, ListAvgExecutionsSchema, UpdateJobSchema, DeleteJobSchema, QueueJobSchema } from "./schema";
|
4
|
+
import { AvgExecution, Execution, ExecutionTrend, FailedJob, JobMetrics, JobStats, ScheduledJob } from "./types";
|
5
|
+
export declare class ScheduledJobService extends ServiceClient {
|
6
|
+
protected getServiceName(): string;
|
7
|
+
CreateScheduledJob(payload: z.infer<typeof CreateScheduledJobSchema>): Promise<ScheduledJob>;
|
8
|
+
ListScheduledJobs(payload: z.infer<typeof ListScheduledJobsSchema>): Promise<ScheduledJob[]>;
|
9
|
+
GetScheduledJob(payload: z.infer<typeof GetScheduledJobSchema>): Promise<ScheduledJob>;
|
10
|
+
ListExecutions(payload: z.infer<typeof ListExecutionsSchema>): Promise<Execution[]>;
|
11
|
+
ListAvgExecutions(payload: z.infer<typeof ListAvgExecutionsSchema>): Promise<AvgExecution[]>;
|
12
|
+
UpdateJob(payload: z.infer<typeof UpdateJobSchema>): Promise<ScheduledJob>;
|
13
|
+
GetDailyExecutionTrend(payload: z.infer<typeof GetDailyExecutionTrendSchema>): Promise<ExecutionTrend[]>;
|
14
|
+
GetTopFailedJobs(payload: z.infer<typeof GetTopFailedJobsSchema>): Promise<FailedJob>;
|
15
|
+
GetJobStats(payload: z.infer<typeof GetJobStatsSchema>): Promise<JobStats>;
|
16
|
+
DeleteJob(payload: z.infer<typeof DeleteJobSchema>): Promise<void>;
|
17
|
+
GetJobMetrics(): Promise<JobMetrics>;
|
18
|
+
QueueJob(payload: z.infer<typeof QueueJobSchema>): Promise<void>;
|
19
|
+
}
|