@appconda/nextjs 1.0.161 → 1.0.172

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 (280) hide show
  1. package/dist/actions/actionClient.d.ts +8 -2
  2. package/dist/actions/actionClient.js +21 -15
  3. package/dist/actions/auth.d.ts +1 -0
  4. package/dist/actions/auth.js +7 -0
  5. package/dist/actions/authOptions.d.ts +5 -0
  6. package/dist/actions/authOptions.js +235 -0
  7. package/dist/actions/index.d.ts +3 -0
  8. package/dist/actions/index.js +4 -0
  9. package/dist/actions/nextAuthHandler.d.ts +1 -0
  10. package/dist/actions/nextAuthHandler.js +6 -0
  11. package/dist/client.d.ts +1 -1
  12. package/dist/client.js +1 -0
  13. package/dist/decorators/Cache.js +1 -0
  14. package/dist/decorators/CacheKey.js +1 -0
  15. package/dist/decorators/Invalidate.js +1 -0
  16. package/dist/enums/api-service.js +1 -0
  17. package/dist/enums/api.js +1 -0
  18. package/dist/enums/auth-method.js +1 -0
  19. package/dist/enums/browser.js +1 -0
  20. package/dist/enums/compression.js +1 -0
  21. package/dist/enums/credit-card.js +1 -0
  22. package/dist/enums/database-usage-range.js +1 -0
  23. package/dist/enums/email-template-locale.js +1 -0
  24. package/dist/enums/email-template-type.js +1 -0
  25. package/dist/enums/entities/EntityLimitType.js +1 -0
  26. package/dist/enums/entities/PropertyAttributeName.js +1 -0
  27. package/dist/enums/entities/PropertyCondition.js +1 -0
  28. package/dist/enums/entities/PropertyType.js +1 -0
  29. package/dist/enums/entities/PropertyValueType.js +1 -0
  30. package/dist/enums/entities/RowAccess.js +1 -0
  31. package/dist/enums/entities/ViewFilterCondition.js +1 -0
  32. package/dist/enums/execution-method.js +1 -0
  33. package/dist/enums/flag.js +1 -0
  34. package/dist/enums/function-usage-range.js +1 -0
  35. package/dist/enums/image-format.js +1 -0
  36. package/dist/enums/image-gravity.js +1 -0
  37. package/dist/enums/index-type.js +1 -0
  38. package/dist/enums/messaging-provider-type.js +1 -0
  39. package/dist/enums/name.js +1 -0
  40. package/dist/enums/o-auth-provider copy.js +1 -0
  41. package/dist/enums/password-hash.js +1 -0
  42. package/dist/enums/platform-type.js +1 -0
  43. package/dist/enums/project-usage-range.js +1 -0
  44. package/dist/enums/region.js +1 -0
  45. package/dist/enums/relation-mutate.js +1 -0
  46. package/dist/enums/relationship-type.js +1 -0
  47. package/dist/enums/resource-type.js +1 -0
  48. package/dist/enums/runtime.js +1 -0
  49. package/dist/enums/s-m-t-p-secure.js +1 -0
  50. package/dist/enums/shared/ApplicationLayout.js +1 -0
  51. package/dist/enums/shared/Colors.js +1 -0
  52. package/dist/enums/shared/InputType.js +1 -0
  53. package/dist/enums/shared/Periodicity.js +1 -0
  54. package/dist/enums/shared/SvgIcon.js +1 -0
  55. package/dist/enums/shared/Theme.js +1 -0
  56. package/dist/enums/sms-template-locale.js +1 -0
  57. package/dist/enums/sms-template-type.js +1 -0
  58. package/dist/enums/smtp-encryption.js +1 -0
  59. package/dist/enums/storage-usage-range.js +1 -0
  60. package/dist/enums/subscriptions/PricingModel.js +1 -0
  61. package/dist/enums/subscriptions/SubscriptionBillingPeriod.js +1 -0
  62. package/dist/enums/subscriptions/SubscriptionFeatureLimitType.js +1 -0
  63. package/dist/enums/subscriptions/SubscriptionPriceType.js +1 -0
  64. package/dist/enums/tenants/LinkedAccountStatus.js +1 -0
  65. package/dist/enums/tenants/TenantUserJoined.js +1 -0
  66. package/dist/enums/tenants/TenantUserStatus.js +1 -0
  67. package/dist/enums/tenants/TenantUserType.js +1 -0
  68. package/dist/enums/user-usage-range.js +1 -0
  69. package/dist/getAppcondaClient.js +5 -3
  70. package/dist/getSDKForCurrentUser.d.ts +8 -2
  71. package/dist/getSDKForCurrentUser.js +13 -5
  72. package/dist/getSDKForService.js +3 -1
  73. package/dist/getSDKForTenant.d.ts +20 -0
  74. package/dist/getSDKForTenant.js +44 -0
  75. package/dist/id.js +1 -0
  76. package/dist/index.d.ts +4 -1
  77. package/dist/index.js +5 -1
  78. package/dist/inputFile.js +1 -0
  79. package/dist/lib/Cache/Adapter.js +1 -0
  80. package/dist/lib/Cache/Adapters/Filesystem.js +1 -0
  81. package/dist/lib/Cache/Adapters/Memory.js +1 -0
  82. package/dist/lib/Cache/Adapters/None.js +1 -0
  83. package/dist/lib/Cache/Adapters/Sharding.js +1 -0
  84. package/dist/lib/Cache/Cache.js +1 -0
  85. package/dist/lib/Cache/index.js +1 -0
  86. package/dist/lib/Cache/test.js +1 -0
  87. package/dist/lib/Registry/Registry.js +1 -0
  88. package/dist/lib/Registry/index.js +1 -0
  89. package/dist/lib/Services.js +1 -0
  90. package/dist/lib/crypto.d.ts +23 -0
  91. package/dist/lib/crypto.js +78 -0
  92. package/dist/lib/env.d.ts +1 -0
  93. package/dist/lib/env.js +137 -0
  94. package/dist/lib/errors.d.ts +70 -0
  95. package/dist/lib/errors.js +76 -0
  96. package/dist/lib/index.d.ts +2 -0
  97. package/dist/lib/index.js +3 -0
  98. package/dist/lib/jwt.d.ts +12 -0
  99. package/dist/lib/jwt.js +103 -0
  100. package/dist/lib/types.d.ts +5 -0
  101. package/dist/lib/types.js +2 -0
  102. package/dist/models.js +1 -0
  103. package/dist/modules/account/actions.d.ts +6 -24
  104. package/dist/modules/account/actions.js +12 -10
  105. package/dist/modules/account/enums/authentication-factor.js +1 -0
  106. package/dist/modules/account/enums/authenticator-type.js +1 -0
  107. package/dist/modules/account/enums/o-auth-provider.js +1 -0
  108. package/dist/modules/account/index.js +1 -0
  109. package/dist/modules/account/schema.d.ts +8 -8
  110. package/dist/modules/account/schema.js +1 -0
  111. package/dist/modules/account/service.js +1 -0
  112. package/dist/modules/account/types.js +1 -0
  113. package/dist/modules/acl/service.d.ts +26 -0
  114. package/dist/modules/acl/service.js +27 -0
  115. package/dist/modules/agent/action.d.ts +28 -52
  116. package/dist/modules/agent/action.js +24 -34
  117. package/dist/modules/agent/index.js +1 -0
  118. package/dist/modules/agent/schema.d.ts +18 -18
  119. package/dist/modules/agent/schema.js +1 -0
  120. package/dist/modules/agent/service.js +1 -0
  121. package/dist/modules/agent/types.js +1 -0
  122. package/dist/modules/ai/index.js +1 -0
  123. package/dist/modules/ai/node/actions.d.ts +4 -4
  124. package/dist/modules/ai/node/actions.js +6 -7
  125. package/dist/modules/ai/node/index.js +1 -0
  126. package/dist/modules/ai/node/service.js +1 -0
  127. package/dist/modules/hooks/index.d.ts +3 -0
  128. package/dist/modules/hooks/index.js +4 -0
  129. package/dist/modules/hooks/lib/Hooks.d.ts +32 -0
  130. package/dist/modules/hooks/lib/Hooks.js +64 -0
  131. package/dist/modules/hooks/lib/handler.d.ts +12 -0
  132. package/dist/modules/hooks/lib/handler.js +23 -0
  133. package/dist/modules/hooks/lib/jobs/index.d.ts +2 -0
  134. package/dist/modules/hooks/lib/jobs/index.js +3 -0
  135. package/dist/modules/hooks/lib/jobs/job1.d.ts +1 -0
  136. package/dist/modules/hooks/lib/jobs/job1.js +16 -0
  137. package/dist/modules/hooks/lib/jobs/log-job.d.ts +1 -0
  138. package/dist/modules/hooks/lib/jobs/log-job.js +9 -0
  139. package/dist/modules/hooks/lib/wait.d.ts +8 -0
  140. package/dist/modules/hooks/lib/wait.js +13 -0
  141. package/dist/modules/index.d.ts +4 -0
  142. package/dist/modules/index.js +5 -0
  143. package/dist/modules/scheduled-job/action.d.ts +69 -0
  144. package/dist/modules/scheduled-job/action.js +173 -0
  145. package/dist/modules/scheduled-job/action2.d.ts +5 -0
  146. package/dist/modules/scheduled-job/action2.js +17 -0
  147. package/dist/modules/scheduled-job/index.d.ts +7 -0
  148. package/dist/modules/scheduled-job/index.js +8 -0
  149. package/dist/modules/scheduled-job/lib/Schedules.d.ts +34 -0
  150. package/dist/modules/scheduled-job/lib/Schedules.js +65 -0
  151. package/dist/modules/scheduled-job/lib/handler.d.ts +13 -0
  152. package/dist/modules/scheduled-job/lib/handler.js +23 -0
  153. package/dist/modules/scheduled-job/lib/jobs/index.d.ts +1 -0
  154. package/dist/modules/scheduled-job/lib/jobs/index.js +2 -0
  155. package/dist/modules/scheduled-job/lib/jobs/job1.d.ts +1 -0
  156. package/dist/modules/scheduled-job/lib/jobs/job1.js +10 -0
  157. package/dist/modules/scheduled-job/lib/jobs/log-job.d.ts +1 -0
  158. package/dist/modules/scheduled-job/lib/jobs/log-job.js +9 -0
  159. package/dist/modules/scheduled-job/lib/wait.d.ts +8 -0
  160. package/dist/modules/scheduled-job/lib/wait.js +13 -0
  161. package/dist/modules/scheduled-job/schema.d.ts +85 -0
  162. package/dist/modules/scheduled-job/schema.js +38 -0
  163. package/dist/modules/scheduled-job/service.d.ts +20 -0
  164. package/dist/modules/scheduled-job/service.js +46 -0
  165. package/dist/modules/scheduled-job/types.d.ts +65 -0
  166. package/dist/modules/scheduled-job/types.js +2 -0
  167. package/dist/modules/task/action.d.ts +73 -0
  168. package/dist/modules/task/action.js +126 -0
  169. package/dist/modules/task/index.d.ts +4 -0
  170. package/dist/modules/task/index.js +5 -0
  171. package/dist/modules/task/schema.d.ts +107 -0
  172. package/dist/modules/task/schema.js +44 -0
  173. package/dist/modules/task/service.d.ts +19 -0
  174. package/dist/modules/task/service.js +43 -0
  175. package/dist/modules/task/types.d.ts +84 -0
  176. package/dist/modules/task/types.js +2 -0
  177. package/dist/modules/tenant/actions.d.ts +48 -0
  178. package/dist/modules/tenant/actions.js +51 -0
  179. package/dist/modules/tenant/index.d.ts +3 -0
  180. package/dist/modules/tenant/index.js +4 -0
  181. package/dist/modules/tenant/tenant.d.ts +32 -0
  182. package/dist/modules/tenant/tenant.js +125 -0
  183. package/dist/modules/tenant/types.d.ts +11 -0
  184. package/dist/modules/tenant/types.js +2 -0
  185. package/dist/modules/waitlist/action.d.ts +31 -29
  186. package/dist/modules/waitlist/action.js +1 -0
  187. package/dist/modules/waitlist/index.js +1 -0
  188. package/dist/modules/waitlist/schema.d.ts +12 -12
  189. package/dist/modules/waitlist/schema.js +1 -0
  190. package/dist/modules/waitlist/service.js +1 -0
  191. package/dist/modules/waitlist/types.js +1 -0
  192. package/dist/permission.js +1 -0
  193. package/dist/query.js +1 -0
  194. package/dist/role.js +1 -0
  195. package/dist/schemas/nodes.js +1 -0
  196. package/dist/service-client.js +1 -0
  197. package/dist/service.js +1 -0
  198. package/dist/services/applets.js +1 -0
  199. package/dist/services/avatars.js +1 -0
  200. package/dist/services/chat-flow.js +1 -0
  201. package/dist/services/community.js +1 -0
  202. package/dist/services/configuration.js +1 -0
  203. package/dist/services/databases.js +1 -0
  204. package/dist/services/functions.js +1 -0
  205. package/dist/services/graphql.js +1 -0
  206. package/dist/services/health.js +1 -0
  207. package/dist/services/locale.js +1 -0
  208. package/dist/services/messaging.js +1 -0
  209. package/dist/services/permissions.js +1 -0
  210. package/dist/services/pricing.js +1 -0
  211. package/dist/services/projects.js +1 -0
  212. package/dist/services/roles.js +1 -0
  213. package/dist/services/schema.js +1 -0
  214. package/dist/services/storage.js +1 -0
  215. package/dist/services/subscription.js +1 -0
  216. package/dist/services/teams.js +1 -0
  217. package/dist/services/tenant-subscription.js +1 -0
  218. package/dist/services/users.js +1 -0
  219. package/package.json +4 -1
  220. package/src/actions/actionClient.ts +13 -6
  221. package/src/actions/auth.ts +7 -0
  222. package/src/actions/authOptions.ts +255 -0
  223. package/src/actions/index.ts +3 -0
  224. package/src/actions/nextAuthHandler.ts +9 -0
  225. package/src/client.ts +1 -1
  226. package/src/getAppcondaClient.ts +4 -3
  227. package/src/getSDKForCurrentUser.ts +12 -5
  228. package/src/getSDKForService.ts +2 -1
  229. package/src/getSDKForTenant.ts +52 -0
  230. package/src/index.ts +4 -2
  231. package/src/lib/crypto.ts +105 -0
  232. package/src/lib/env.ts +145 -0
  233. package/src/lib/errors.ts +138 -0
  234. package/src/lib/index.ts +2 -0
  235. package/src/lib/jwt.ts +113 -0
  236. package/src/lib/types.ts +7 -0
  237. package/src/modules/account/actions.ts +16 -13
  238. package/src/modules/acl/service.ts +55 -0
  239. package/src/modules/agent/action.ts +27 -38
  240. package/src/modules/ai/node/actions.ts +5 -8
  241. package/src/modules/hooks/index.ts +5 -0
  242. package/src/modules/hooks/lib/Hooks.ts +103 -0
  243. package/src/modules/hooks/lib/handler.ts +27 -0
  244. package/src/modules/hooks/lib/jobs/index.ts +2 -0
  245. package/src/modules/hooks/lib/jobs/job1.ts +20 -0
  246. package/src/modules/hooks/lib/jobs/log-job.ts +10 -0
  247. package/src/modules/hooks/lib/wait.ts +17 -0
  248. package/src/modules/index.ts +5 -1
  249. package/src/modules/scheduled-job/action.ts +212 -0
  250. package/src/modules/scheduled-job/index.ts +8 -0
  251. package/src/modules/scheduled-job/lib/Schedules.ts +105 -0
  252. package/src/modules/scheduled-job/lib/handler.ts +27 -0
  253. package/src/modules/scheduled-job/lib/jobs/index.ts +2 -0
  254. package/src/modules/scheduled-job/lib/jobs/job1.ts +12 -0
  255. package/src/modules/scheduled-job/lib/wait.ts +17 -0
  256. package/src/modules/scheduled-job/schema.ts +60 -0
  257. package/src/modules/scheduled-job/service.ts +63 -0
  258. package/src/modules/scheduled-job/types.ts +78 -0
  259. package/src/modules/task/action.ts +157 -0
  260. package/src/modules/task/index.ts +4 -0
  261. package/src/modules/task/schema.ts +53 -0
  262. package/src/modules/task/service.ts +63 -0
  263. package/src/modules/task/types.ts +89 -0
  264. package/src/modules/tenant/actions.ts +57 -0
  265. package/src/modules/tenant/index.ts +3 -0
  266. package/src/{services → modules/tenant}/tenant.ts +3 -4
  267. package/src/modules/tenant/types.ts +12 -0
  268. package/tsconfig.json +4 -1
  269. package/dist/actions/nodes.d.ts +0 -4
  270. package/dist/actions/nodes.js +0 -15
  271. package/dist/enums/authentication-factor.d.ts +0 -6
  272. package/dist/enums/authentication-factor.js +0 -7
  273. package/dist/enums/authenticator-type.d.ts +0 -3
  274. package/dist/enums/authenticator-type.js +0 -4
  275. package/dist/enums/o-auth-provider.d.ts +0 -41
  276. package/dist/enums/o-auth-provider.js +0 -42
  277. package/dist/services/account.d.ts +0 -530
  278. package/dist/services/account.js +0 -1259
  279. package/dist/services/node.d.ts +0 -5
  280. package/dist/services/node.js +0 -11
@@ -1,21 +1,24 @@
1
1
  'use server';
2
2
 
3
- import { actionClient } from "../../actions/actionClient";
3
+ import { z } from "zod";
4
4
  import { getSDKForCurrentUser } from "../../getSDKForCurrentUser";
5
5
  import { CreateUserSchema } from "./schema";
6
6
  import { User } from "./types";
7
7
 
8
8
 
9
- export const CreateUser = actionClient
10
- .schema(CreateUserSchema)
11
- .action(async ({ parsedInput }): Promise<User> => {
12
- try {
13
- const { userId, email, password, name } = parsedInput;
14
- const { accounts } = await getSDKForCurrentUser();
15
- return await accounts.create(userId, email, password, name);
9
+ export const CreateUser = async (params: z.infer<typeof CreateUserSchema>): Promise<{ data?: User, serverError?: string }> => {
10
+ try {
11
+ const { userId, email, password, name } = params;
12
+ const { accounts } = await getSDKForCurrentUser();
13
+ return {
14
+ //@ts-ignore
15
+ data: await accounts.create(userId, email, password, name) as any
16
+ };
16
17
 
17
- } catch (error) {
18
- console.error('Error in ListWaitlists:', error);
19
- throw new Error('Failed to fetch ListWaitlists');
20
- }
21
- });
18
+ } catch (error) {
19
+ console.error('Error in CreateUser:', error);
20
+ return {
21
+ serverError: error.toString()
22
+ };
23
+ }
24
+ };
@@ -0,0 +1,55 @@
1
+
2
+ import { Payload } from "../../client";
3
+ import { ServiceClient } from "../../service-client";
4
+
5
+ type Blacklist = {
6
+ id: string
7
+ createdAt: Date
8
+ type: string
9
+ value: string
10
+ active: boolean
11
+ registerAttempts: number
12
+ }
13
+
14
+ export class Acl extends ServiceClient {
15
+
16
+ protected getServiceName(): string {
17
+ return 'com.appconda.service.acl';
18
+ }
19
+
20
+ public async getBlacklist(
21
+ filters?: any,
22
+ pagination?: { page: number; pageSize: number }
23
+ ): Promise<{ items: Blacklist[]; pagination: any }> {
24
+
25
+ const payload: Payload = {};
26
+
27
+ return await this.actionCall('GetBlackList', payload);
28
+
29
+ }
30
+
31
+ public async addToBlackList(type: string, value: string ): Promise<Blacklist> {
32
+
33
+ const payload: Payload = {};
34
+ payload['type'] = type;
35
+ payload['value'] = value;
36
+ return await this.actionCall('AddToBlackList', payload);
37
+
38
+ }
39
+
40
+ public async deleteFromBlackList(type: string, value: string ): Promise<boolean> {
41
+
42
+ const payload: Payload = {};
43
+ payload['type'] = type;
44
+ payload['value'] = value;
45
+ return await this.actionCall('DeleteFromBlackList', payload);
46
+
47
+ }
48
+
49
+ public async getAllTenantIpAddresses(): Promise<{ items: any[]; pagination: any }> {
50
+
51
+ const payload: Payload = {};
52
+ return await this.actionCall('GetAllTenantIpAddresses', payload);
53
+
54
+ }
55
+ }
@@ -1,77 +1,66 @@
1
1
  'use server';
2
2
 
3
3
 
4
- import { actionClient } from '../../actions/actionClient';
4
+ import { z } from 'zod';
5
5
  import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
6
- import { getSDKForService } from '../../getSDKForService';
7
- import { CreateAgentSchema, GetAgentSchema, ListModelsSchema } from './schema';
8
6
  import { Agent, AIModel } from './types';
7
+ import { CreateAgentSchema, GetAgentSchema, ListModelsSchema } from './schema';
9
8
 
10
9
 
11
- export const ListAgents = actionClient
12
- //.schema(ListWaitlistSignupsSchema)
13
- .action(async ({ parsedInput }): Promise<Agent[]> => {
10
+ export const ListAgents = async (): Promise<{data?: Agent[], serverError?: string}> => {
14
11
  try {
15
-
16
12
  const { agent } = await getSDKForCurrentUser();
17
- return await agent.ListAgents(); // typo: Wiatlist mi?
13
+ return { data: await agent.ListAgents() };
18
14
  } catch (error) {
19
- console.error('Error in ListWaitlistSignups:', error);
20
- throw new Error('Failed to fetch ListWaitlistSignups');
15
+ console.error('Error in ListAgents:', error);
16
+ return { serverError: error.toString() };
21
17
  }
22
- });
18
+ };
23
19
 
24
20
 
25
21
 
26
- export const CreateAgent = actionClient
27
- .schema(CreateAgentSchema)
28
- .action(async ({ parsedInput }): Promise<Agent> => {
22
+ export const CreateAgent = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateAgentSchema> }): Promise<{data?: Agent, serverError?: string}> => {
29
23
  try {
30
-
31
24
  const { agent } = await getSDKForCurrentUser();
32
- return await agent.CreateAgent(parsedInput);
25
+ return { data: await agent.CreateAgent(parsedInput) };
33
26
 
34
27
  } catch (error) {
35
- console.error('Error in ListWaitlists:', error);
36
- throw new Error('Failed to fetch ListWaitlists');
28
+ console.error('Error in CreateAgent:', error);
29
+ return { serverError: error.toString() };
37
30
  }
38
- });
31
+ };
39
32
 
40
- export const GetAgent = actionClient
41
- .schema(GetAgentSchema)
42
- .action(async ({ parsedInput }): Promise<Agent> => {
33
+ export const GetAgent = async ({ parsedInput }: { parsedInput: z.infer<typeof GetAgentSchema> }): Promise<{data?: Agent, serverError?: string}> => {
43
34
  try {
44
-
45
35
  const { agent } = await getSDKForCurrentUser();
46
- return await agent.GetAgent(parsedInput);
36
+ return { data: await agent.GetAgent(parsedInput) };
47
37
 
48
38
  } catch (error) {
49
- console.error('Error in ListWaitlists:', error);
50
- throw new Error('Failed to fetch ListWaitlists');
39
+ console.error('Error in GetAgent:', error);
40
+ return { serverError: error.toString() };
51
41
  }
52
- });
42
+ };
53
43
 
54
- export const ListModelProviders = actionClient
55
- .action(async ({ parsedInput }): Promise<Agent[]> => {
44
+ export const ListModelProviders = async (): Promise<{data?: Agent[], serverError?: string}> => {
56
45
  try {
57
46
 
58
47
  const { agent } = await getSDKForCurrentUser();
59
- return await agent.ListModelProviders();
48
+ return { data: await agent.ListModelProviders() };
60
49
  } catch (error) {
61
50
  console.error('Error in ListModelProviders:', error);
62
- throw new Error('Failed to fetch ListModelProviders');
51
+ return { serverError: error.toString() };
63
52
  }
64
- });
53
+ }
65
54
 
66
- export const ListModels = actionClient
67
- .schema(ListModelsSchema)
68
- .action(async ({ parsedInput }): Promise<AIModel[]> => {
55
+ export const ListModels = async ({ parsedInput }: { parsedInput: z.infer<typeof ListModelsSchema> }): Promise<{data?: AIModel[], serverError?: string}> => {
69
56
  try {
70
57
 
71
58
  const { agent } = await getSDKForCurrentUser();
72
- return await agent.ListModels(parsedInput);
59
+ return { data: await agent.ListModels(parsedInput) };
73
60
  } catch (error) {
74
61
  console.error('Error in ListModels:', error);
75
- throw new Error('Failed to fetch ListModels');
62
+ return { serverError: error.toString() };
76
63
  }
77
- });
64
+ };
65
+
66
+
@@ -1,17 +1,14 @@
1
1
  'use server';
2
2
 
3
- import { z } from "zod";
4
- import { actionClient } from "../../../actions/actionClient";
5
3
  import { getSDKForCurrentUser } from "../../../getSDKForCurrentUser";
6
4
 
7
- export const getAllNodesAction = actionClient
8
- // .schema(listModelsSchema)
9
- .action(async ({ parsedInput }) => {
5
+ export const getAllNodesAction = async (): Promise<{data: Node[], serverError?: string}> => {
10
6
  try {
11
7
  const { node } = await getSDKForCurrentUser();
12
- return await node.GetAllNodes();
8
+ return { data: await node.GetAllNodes() };
13
9
  } catch (error) {
14
10
  console.error('Error in getAllNodesAction:', error);
15
- throw new Error('Failed to fetch nodes');
11
+ //@ts-ignore
12
+ return { serverError: error.toString() };
16
13
  }
17
- });
14
+ }
@@ -0,0 +1,5 @@
1
+
2
+ export * from './lib/handler';
3
+ export * from './lib/Hooks';
4
+
5
+ import './lib/jobs';
@@ -0,0 +1,103 @@
1
+
2
+ type TaskPayload = {
3
+ timestamp: Date;
4
+ lastTimestamp?: Date;
5
+ timezone: string;
6
+ };
7
+
8
+ type TaskContext = {
9
+ retriesLeft: number;
10
+ };
11
+
12
+ type TriggerArgs = {
13
+ id: string;
14
+ events: string[];
15
+ maxDuration?: number; // saniye
16
+ retries?: number;
17
+ run: (
18
+ payload: TaskPayload,
19
+ tools: { ctx: TaskContext }
20
+ ) => Promise<void> | void;
21
+ };
22
+
23
+ export class Hooks {
24
+ private lastRunTimestamps: Record<string, Date> = {};
25
+ private triggers: TriggerArgs[] = [];
26
+
27
+ public trigger(args: TriggerArgs) {
28
+ this.triggers.push(args);
29
+ }
30
+
31
+ public async run(hookId: string) {
32
+ const now = new Date();
33
+ const lastTimestamp = this.lastRunTimestamps[hookId];
34
+
35
+ const payload: TaskPayload = {
36
+ timestamp: now,
37
+ lastTimestamp,
38
+ timezone: "UTC",
39
+ };
40
+
41
+ this.lastRunTimestamps[hookId] = now;
42
+
43
+ const context: TaskContext = {
44
+ retriesLeft: this.triggers.find(hook => hook.id === hookId)?.retries ?? 0,
45
+ };
46
+
47
+ await this.runWithRetry(this.triggers.find(hook => hook.id === hookId)!, payload, context);
48
+
49
+
50
+ }
51
+
52
+ private async runWithRetry(
53
+ trigger: TriggerArgs,
54
+ payload: TaskPayload,
55
+ ctx: TaskContext
56
+ ) {
57
+ const start = Date.now();
58
+
59
+ try {
60
+ await Promise.race([
61
+ trigger.run(payload, { ctx }),
62
+ timeout(trigger.maxDuration ?? 60),
63
+ ]);
64
+ log("success", { hookId: trigger.id, time: new Date().toISOString() });
65
+ } catch (err) {
66
+ //@ts-ignore
67
+ log("error", { hookId: trigger.id, error: err });
68
+
69
+ if (ctx.retriesLeft > 0) {
70
+ ctx.retriesLeft -= 1;
71
+ //@ts-ignore
72
+ log("warn", { hookId: trigger.id, msg: "Retrying..." });
73
+ await this.runWithRetry(trigger, payload, ctx);
74
+ }
75
+ } finally {
76
+ const duration = Date.now() - start;
77
+ //@ts-ignore
78
+ log("info", { hookId: trigger.id, durationMs: duration });
79
+ }
80
+ }
81
+
82
+ public toJSON() {
83
+ return this.triggers.map(trigger => ({
84
+ id: trigger.id,
85
+ events: trigger.events,
86
+ maxDuration: trigger.maxDuration,
87
+ retries: trigger.retries,
88
+ }));
89
+ }
90
+ }
91
+
92
+ function log(arg0: string, arg1: { hookId: string; time: string; }) {
93
+ // console.log(arg0, arg1);
94
+ }
95
+
96
+ function timeout(seconds: number) {
97
+ return new Promise((_, reject) =>
98
+ setTimeout(() => reject(new Error("Timeout reached")), seconds * 1000)
99
+ );
100
+ }
101
+
102
+
103
+ export const hooks = new Hooks();
@@ -0,0 +1,27 @@
1
+ import { NextRequest, NextResponse } from 'next/server';
2
+
3
+ import './jobs';
4
+ import { hooks } from './Hooks';
5
+
6
+ /* export async function GET() {
7
+ return NextResponse.json({ schedules: schedules.toJSON() },
8
+ { status: 200 });
9
+ }
10
+
11
+ export async function POST(request: Request) {
12
+
13
+ } */
14
+
15
+ export async function hookHandler(request: NextRequest, res: NextResponse) {
16
+ if (request.method === 'POST') {
17
+ const body = await request.json();
18
+ const hookId = body.hookId;
19
+ hooks.run(hookId);
20
+ return NextResponse.json({ message: 'Callback triggered' },
21
+ { status: 200 });
22
+ } else {
23
+ return NextResponse.json({ hooks: hooks.toJSON() },
24
+ { status: 200 });
25
+ }
26
+ }
27
+
@@ -0,0 +1,2 @@
1
+ import './log-job';
2
+ import './job1';
@@ -0,0 +1,20 @@
1
+
2
+ import { hooks } from "../Hooks";
3
+
4
+ hooks.trigger({
5
+ id: "job1",
6
+ events: ["event1"],
7
+ run: async () => {
8
+ console.log("hello from job 1");
9
+ },
10
+ });
11
+
12
+
13
+ hooks.trigger({
14
+ id: "job2",
15
+ events: ["event2"],
16
+ run: async () => {
17
+ console.log("hello from job 2");
18
+ },
19
+ });
20
+
@@ -0,0 +1,10 @@
1
+ import { hooks } from "../Hooks";
2
+
3
+
4
+ hooks.trigger({
5
+ id: "test",
6
+ events: ["event1"],
7
+ run: async () => {
8
+ console.log("test");
9
+ },
10
+ });
@@ -0,0 +1,17 @@
1
+ export const wait = {
2
+ for: ({ seconds }: { seconds: number }) =>
3
+ new Promise((resolve) => setTimeout(resolve, seconds * 1000)),
4
+
5
+ until: ({ date }: { date: Date }) => {
6
+ const now = new Date();
7
+ const diff = date.getTime() - now.getTime();
8
+
9
+ if (diff <= 0) {
10
+ // Hedef tarih zaten geçmişse hiç bekleme
11
+ return Promise.resolve();
12
+ }
13
+
14
+ return new Promise((resolve) => setTimeout(resolve, diff));
15
+ },
16
+ };
17
+
@@ -1,4 +1,8 @@
1
1
  export * from './waitlist';
2
2
  export * from './account';
3
3
  export * from './ai';
4
- export * from './agent';
4
+ export * from './agent';
5
+ export * from './tenant';
6
+ export * from './task';
7
+ export * from './scheduled-job';
8
+ export * from './hooks';
@@ -0,0 +1,212 @@
1
+ 'use server';
2
+
3
+
4
+ import { z, ZodError } from 'zod';
5
+ import { actionClient } from '../../actions/actionClient';
6
+ import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
7
+ import { CreateScheduledJobSchema, DeleteExecutionsSchema, DeleteJobSchema, GetDailyExecutionTrendSchema, GetJobStatsSchema, GetScheduledJobSchema, GetTopFailedJobsSchema, ListAvgExecutionsSchema, ListExecutionsSchema, ListScheduledJobsSchema, QueueJobSchema, UpdateJobSchema } from './schema';
8
+ import { AvgExecution, Execution, ExecutionTrend, FailedJob, JobStats, ScheduledJob } from './types';
9
+ import { AppcondaException } from '../../client';
10
+ import { ActionResult } from '../../lib/types';
11
+
12
+ export const CreateScheduledJob = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateScheduledJobSchema> }): Promise<{ data?: ScheduledJob, serverError?: string }> => {
13
+ try {
14
+
15
+ const { scheduledJob } = await getSDKForCurrentUser();
16
+ return { data: await scheduledJob.CreateScheduledJob(parsedInput) };
17
+
18
+ } catch (error) {
19
+ console.error('Error in CreateScheduledJob:', error);
20
+ return { serverError: error.toString() };
21
+ }
22
+ };
23
+
24
+ export const ListScheduledJobs = async (parsedInput: z.infer<typeof ListScheduledJobsSchema>): Promise<{ data?: ScheduledJob[], serverError?: string }> => {
25
+ try {
26
+ const { scheduledJob } = await getSDKForCurrentUser();
27
+ return { data: await scheduledJob.ListScheduledJobs(parsedInput) };
28
+
29
+ } catch (error) {
30
+ console.error('Error in ListScheduledJobs:', error);
31
+ return { serverError: error.toString() };
32
+ }
33
+ };
34
+
35
+ export const GetScheduledJob = async (parsedInput: z.infer<typeof GetScheduledJobSchema>): Promise<{ data?: ScheduledJob, serverError?: string }> => {
36
+ try {
37
+
38
+ const { scheduledJob } = await getSDKForCurrentUser();
39
+ return { data: await scheduledJob.GetScheduledJob(parsedInput) };
40
+
41
+ } catch (error) {
42
+ console.error('Error in GetScheduledJob:', error);
43
+ return { serverError: error.toString() };
44
+ }
45
+ };
46
+
47
+ export const ListExecutions = async (parsedInput: z.infer<typeof ListExecutionsSchema>): Promise<{ data?: Execution[], serverError?: string }> => {
48
+ try {
49
+
50
+ const { scheduledJob } = await getSDKForCurrentUser();
51
+ return { data: await scheduledJob.ListExecutions(parsedInput) };
52
+
53
+ } catch (error) {
54
+ console.error('Error in ListExecutions:', error);
55
+ return { serverError: error.toString() };
56
+ }
57
+ };
58
+
59
+ export const ListAvgExecutions = async (parsedInput: z.infer<typeof ListAvgExecutionsSchema>): Promise<{ data?: AvgExecution[], serverError?: string }> => {
60
+ try {
61
+
62
+ const { scheduledJob } = await getSDKForCurrentUser();
63
+ return { data: await scheduledJob.ListAvgExecutions(parsedInput) };
64
+
65
+ } catch (error) {
66
+ console.error('Error in ListAvgExecutions:', error);
67
+ return { serverError: error.toString() };
68
+ }
69
+ };
70
+
71
+ export const UpdateJob = async (params: z.infer<typeof UpdateJobSchema>): Promise<ActionResult<ScheduledJob>> => {
72
+ try {
73
+ console.log('params', params);
74
+ const parsedInput = UpdateJobSchema.parse(params);
75
+ const { scheduledJob } = await getSDKForCurrentUser();
76
+ return { data: await scheduledJob.UpdateJob(parsedInput) };
77
+
78
+ } catch (error) {
79
+ if (error instanceof AppcondaException) {
80
+ return { serverError: error.message };
81
+ }
82
+ if (error instanceof ZodError) {
83
+ return { validationError: error.toString() };
84
+ }
85
+ console.error('Error in UpdateJob:', error);
86
+ return { serverError: error.toString() };
87
+ }
88
+ };
89
+
90
+ export const GetDailyExecutionTrend = async (parsedInput: z.infer<typeof GetDailyExecutionTrendSchema>): Promise<{ data?: ExecutionTrend[], serverError?: string }> => {
91
+ try {
92
+
93
+ const { scheduledJob } = await getSDKForCurrentUser();
94
+ return { data: await scheduledJob.GetDailyExecutionTrend(parsedInput) };
95
+
96
+ } catch (error) {
97
+ console.error('Error in GetDailyExecutionTrend:', error);
98
+ return { serverError: error.toString() };
99
+ }
100
+ };
101
+
102
+
103
+
104
+ export const GetTopFailedJobs = async (parsedInput: z.infer<typeof GetTopFailedJobsSchema>): Promise<{ data?: FailedJob[], serverError?: string }> => {
105
+ try {
106
+
107
+ const { scheduledJob } = await getSDKForCurrentUser();
108
+ //@ts-ignore
109
+ return { data: await scheduledJob.GetTopFailedJobs(parsedInput) };
110
+
111
+ } catch (error) {
112
+ console.error('Error in GetTopFailedJobs:', error);
113
+ return { serverError: error.toString() };
114
+ }
115
+ };
116
+
117
+ export const GetJobStats = async (parsedInput: z.infer<typeof GetJobStatsSchema>): Promise<{ data?: JobStats, serverError?: string }> => {
118
+ try {
119
+
120
+ const { scheduledJob } = await getSDKForCurrentUser();
121
+ return { data: await scheduledJob.GetJobStats(parsedInput) };
122
+
123
+ } catch (error) {
124
+ console.error('Error in GetJobStats:', error);
125
+ return { serverError: error.toString() };
126
+ }
127
+ };
128
+
129
+ export const DeleteJob = async (parsedInput: z.infer<typeof DeleteJobSchema>): Promise<ActionResult<void>> => {
130
+ try {
131
+ const { scheduledJob } = await getSDKForCurrentUser();
132
+ await scheduledJob.DeleteJob(parsedInput);
133
+ return {};
134
+ } catch (error) {
135
+ console.error('Error in DeleteJob:', error);
136
+ return { serverError: error.toString() };
137
+ }
138
+ };
139
+
140
+ export const ListJobsWithStats = async () => {
141
+ try {
142
+
143
+ const jobs = await ListScheduledJobs({});
144
+ const avg = await ListAvgExecutions({});
145
+
146
+ // Merge jobs with average execution data
147
+ const mergedJobs = jobs?.data?.map(job => {
148
+ const jobAvg = avg?.data?.find(a => a.scheduledJobId === job.id);
149
+ return {
150
+ ...job,
151
+ totalExecutions: jobAvg?.totalExecutions || 0,
152
+ activeDays: jobAvg?.activeDays || 0,
153
+ avgExecutionsPerDay: jobAvg?.avgExecutionsPerDay || 0,
154
+ completed: jobAvg?.completed || 0,
155
+ failed: jobAvg?.failed || 0,
156
+ queued: jobAvg?.queued || 0,
157
+ };
158
+ }) || [];
159
+
160
+ return { data: mergedJobs };
161
+
162
+ } catch (error) {
163
+ console.error('Error in ListJobsWithStats:', error);
164
+ return { serverError: error.toString() };
165
+ }
166
+ };
167
+
168
+ export const GetJobMetrics = async () => {
169
+ try {
170
+ const { scheduledJob } = await getSDKForCurrentUser();
171
+ return await scheduledJob.GetJobMetrics();
172
+ } catch (error) {
173
+ console.error('Error in GetJobMetrics:', error);
174
+ throw new Error(error.toString());
175
+ }
176
+ };
177
+
178
+ export const QueueJob = async (parsedInput: z.infer<typeof QueueJobSchema>): Promise<boolean> => {
179
+ try {
180
+ const { scheduledJob } = await getSDKForCurrentUser();
181
+ await scheduledJob.QueueJob(parsedInput);
182
+ return true;
183
+ } catch (error) {
184
+ if (error instanceof AppcondaException) {
185
+ console.error('Error in QueueJob:', error.message);
186
+
187
+ }
188
+ return false;
189
+ }
190
+ };
191
+
192
+ export const DeleteExecutions = async ( parsedInput: z.infer<typeof DeleteExecutionsSchema> ): Promise<{data?: void, serverError?: string}> => {
193
+ try {
194
+
195
+ const { scheduledJob } = await getSDKForCurrentUser();
196
+ return { data: await scheduledJob.DeleteExecutions(parsedInput) };
197
+
198
+ } catch (error) {
199
+ console.error('Error in DeleteExecutions:', error);
200
+ return { serverError: error.toString() };
201
+ }
202
+ };
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
@@ -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
+
8
+ import './lib/jobs';