alepha 0.15.3 → 0.15.4

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 (90) hide show
  1. package/dist/api/audits/index.d.ts +332 -332
  2. package/dist/api/audits/index.d.ts.map +1 -1
  3. package/dist/api/audits/index.js +8 -0
  4. package/dist/api/audits/index.js.map +1 -1
  5. package/dist/api/files/index.js +1 -0
  6. package/dist/api/files/index.js.map +1 -1
  7. package/dist/api/jobs/index.d.ts +151 -151
  8. package/dist/api/jobs/index.d.ts.map +1 -1
  9. package/dist/api/jobs/index.js +3 -0
  10. package/dist/api/jobs/index.js.map +1 -1
  11. package/dist/api/keys/index.d.ts +195 -195
  12. package/dist/api/keys/index.d.ts.map +1 -1
  13. package/dist/api/notifications/index.browser.js +1 -0
  14. package/dist/api/notifications/index.browser.js.map +1 -1
  15. package/dist/api/notifications/index.js +1 -0
  16. package/dist/api/notifications/index.js.map +1 -1
  17. package/dist/api/parameters/index.d.ts +260 -260
  18. package/dist/api/parameters/index.d.ts.map +1 -1
  19. package/dist/api/parameters/index.js +10 -0
  20. package/dist/api/parameters/index.js.map +1 -1
  21. package/dist/api/users/index.d.ts +10 -10
  22. package/dist/api/users/index.d.ts.map +1 -1
  23. package/dist/api/users/index.js +11 -0
  24. package/dist/api/users/index.js.map +1 -1
  25. package/dist/api/verifications/index.d.ts +128 -128
  26. package/dist/api/verifications/index.d.ts.map +1 -1
  27. package/dist/batch/index.d.ts +4 -4
  28. package/dist/cli/index.d.ts +5 -0
  29. package/dist/cli/index.d.ts.map +1 -1
  30. package/dist/cli/index.js +19 -2
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/email/index.d.ts +13 -13
  33. package/dist/email/index.d.ts.map +1 -1
  34. package/dist/email/index.js +10554 -2
  35. package/dist/email/index.js.map +1 -1
  36. package/dist/lock/core/index.d.ts +6 -1
  37. package/dist/lock/core/index.d.ts.map +1 -1
  38. package/dist/lock/core/index.js +9 -1
  39. package/dist/lock/core/index.js.map +1 -1
  40. package/dist/react/auth/index.browser.js +2 -1
  41. package/dist/react/auth/index.browser.js.map +1 -1
  42. package/dist/react/auth/index.js +2 -1
  43. package/dist/react/auth/index.js.map +1 -1
  44. package/dist/react/core/index.d.ts +3 -3
  45. package/dist/react/router/index.d.ts +10 -0
  46. package/dist/react/router/index.d.ts.map +1 -1
  47. package/dist/react/router/index.js +16 -6
  48. package/dist/react/router/index.js.map +1 -1
  49. package/dist/redis/index.d.ts +19 -19
  50. package/dist/scheduler/index.d.ts +13 -1
  51. package/dist/scheduler/index.d.ts.map +1 -1
  52. package/dist/scheduler/index.js +42 -4
  53. package/dist/scheduler/index.js.map +1 -1
  54. package/dist/server/compress/index.d.ts.map +1 -1
  55. package/dist/server/compress/index.js +1 -0
  56. package/dist/server/compress/index.js.map +1 -1
  57. package/dist/server/core/index.d.ts +9 -9
  58. package/dist/server/links/index.js +1 -1
  59. package/dist/server/links/index.js.map +1 -1
  60. package/dist/vite/index.d.ts +2 -1
  61. package/dist/vite/index.d.ts.map +1 -1
  62. package/dist/vite/index.js +28 -2
  63. package/dist/vite/index.js.map +1 -1
  64. package/dist/websocket/index.d.ts +34 -34
  65. package/dist/websocket/index.d.ts.map +1 -1
  66. package/package.json +6 -3
  67. package/src/api/audits/controllers/AdminAuditController.ts +8 -0
  68. package/src/api/files/controllers/AdminFileStatsController.ts +1 -0
  69. package/src/api/jobs/controllers/AdminJobController.ts +3 -0
  70. package/src/api/notifications/controllers/AdminNotificationController.ts +1 -0
  71. package/src/api/parameters/controllers/AdminConfigController.ts +10 -0
  72. package/src/api/users/controllers/AdminIdentityController.ts +3 -0
  73. package/src/api/users/controllers/AdminSessionController.ts +3 -0
  74. package/src/api/users/controllers/AdminUserController.ts +5 -0
  75. package/src/cli/commands/build.ts +1 -0
  76. package/src/cli/providers/ViteDevServerProvider.ts +31 -0
  77. package/src/email/index.workerd.ts +36 -0
  78. package/src/email/providers/WorkermailerEmailProvider.ts +221 -0
  79. package/src/lock/core/primitives/$lock.ts +13 -1
  80. package/src/react/auth/services/ReactAuth.ts +3 -1
  81. package/src/react/router/atoms/ssrManifestAtom.ts +7 -0
  82. package/src/react/router/providers/ReactServerProvider.ts +14 -4
  83. package/src/react/router/providers/SSRManifestProvider.ts +7 -0
  84. package/src/scheduler/index.workerd.ts +43 -0
  85. package/src/scheduler/providers/CronProvider.ts +53 -6
  86. package/src/scheduler/providers/WorkerdCronProvider.ts +102 -0
  87. package/src/server/compress/providers/ServerCompressProvider.ts +6 -0
  88. package/src/server/links/providers/ServerLinksProvider.spec.ts +332 -0
  89. package/src/server/links/providers/ServerLinksProvider.ts +1 -1
  90. package/src/vite/tasks/generateCloudflare.ts +38 -2
@@ -1,4 +1,4 @@
1
- import * as alepha154 from "alepha";
1
+ import * as alepha179 from "alepha";
2
2
  import { Alepha, Async, KIND, Primitive, Static, TNull, TObject, TOptional, TSchema, TUnion } from "alepha";
3
3
  import * as alepha_server0 from "alepha/server";
4
4
  import * as alepha_orm0 from "alepha/orm";
@@ -229,76 +229,76 @@ interface PgRefOptions {
229
229
  type PgAttr<T extends TSchema, TAttr extends PgSymbolKeys> = T & { [K in TAttr]: PgSymbols[K] };
230
230
  //#endregion
231
231
  //#region ../../src/api/jobs/schemas/jobExecutionQuerySchema.d.ts
232
- declare const jobExecutionQuerySchema: alepha154.TObject<{
233
- page: alepha154.TOptional<alepha154.TInteger>;
234
- size: alepha154.TOptional<alepha154.TInteger>;
235
- sort: alepha154.TOptional<alepha154.TString>;
236
- status: alepha154.TOptional<alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">>;
237
- job: alepha154.TOptional<alepha154.TString>;
232
+ declare const jobExecutionQuerySchema: alepha179.TObject<{
233
+ page: alepha179.TOptional<alepha179.TInteger>;
234
+ size: alepha179.TOptional<alepha179.TInteger>;
235
+ sort: alepha179.TOptional<alepha179.TString>;
236
+ status: alepha179.TOptional<alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">>;
237
+ job: alepha179.TOptional<alepha179.TString>;
238
238
  }>;
239
239
  type JobExecutionQuery = Static<typeof jobExecutionQuerySchema>;
240
240
  //#endregion
241
241
  //#region ../../src/api/jobs/services/JobService.d.ts
242
242
  declare class JobService {
243
243
  protected readonly alepha: Alepha;
244
- protected readonly executionRepository: alepha_orm0.Repository<alepha154.TObject<{
245
- id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
246
- version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
247
- createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
248
- updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
249
- finishedAt: alepha154.TOptional<alepha154.TString>;
250
- job: alepha154.TString;
251
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
252
- error: alepha154.TOptional<alepha154.TString>;
253
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
254
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
255
- message: alepha154.TString;
256
- service: alepha154.TString;
257
- module: alepha154.TString;
258
- context: alepha154.TOptional<alepha154.TString>;
259
- app: alepha154.TOptional<alepha154.TString>;
260
- data: alepha154.TOptional<alepha154.TAny>;
261
- timestamp: alepha154.TNumber;
244
+ protected readonly executionRepository: alepha_orm0.Repository<alepha179.TObject<{
245
+ id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
246
+ version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
247
+ createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
248
+ updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
249
+ finishedAt: alepha179.TOptional<alepha179.TString>;
250
+ job: alepha179.TString;
251
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
252
+ error: alepha179.TOptional<alepha179.TString>;
253
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
254
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
255
+ message: alepha179.TString;
256
+ service: alepha179.TString;
257
+ module: alepha179.TString;
258
+ context: alepha179.TOptional<alepha179.TString>;
259
+ app: alepha179.TOptional<alepha179.TString>;
260
+ data: alepha179.TOptional<alepha179.TAny>;
261
+ timestamp: alepha179.TNumber;
262
262
  }>>>;
263
263
  }>>;
264
264
  getJobs(): Promise<string[]>;
265
- getJobExecutions(query?: JobExecutionQuery): Promise<alepha154.Page<alepha_orm0.PgStatic<alepha154.TObject<{
266
- id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
267
- version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
268
- createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
269
- updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
270
- finishedAt: alepha154.TOptional<alepha154.TString>;
271
- job: alepha154.TString;
272
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
273
- error: alepha154.TOptional<alepha154.TString>;
274
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
275
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
276
- message: alepha154.TString;
277
- service: alepha154.TString;
278
- module: alepha154.TString;
279
- context: alepha154.TOptional<alepha154.TString>;
280
- app: alepha154.TOptional<alepha154.TString>;
281
- data: alepha154.TOptional<alepha154.TAny>;
282
- timestamp: alepha154.TNumber;
265
+ getJobExecutions(query?: JobExecutionQuery): Promise<alepha179.Page<alepha_orm0.PgStatic<alepha179.TObject<{
266
+ id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
267
+ version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
268
+ createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
269
+ updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
270
+ finishedAt: alepha179.TOptional<alepha179.TString>;
271
+ job: alepha179.TString;
272
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
273
+ error: alepha179.TOptional<alepha179.TString>;
274
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
275
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
276
+ message: alepha179.TString;
277
+ service: alepha179.TString;
278
+ module: alepha179.TString;
279
+ context: alepha179.TOptional<alepha179.TString>;
280
+ app: alepha179.TOptional<alepha179.TString>;
281
+ data: alepha179.TOptional<alepha179.TAny>;
282
+ timestamp: alepha179.TNumber;
283
283
  }>>>;
284
- }>, alepha_orm0.PgRelationMap<alepha154.TObject<{
285
- id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
286
- version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
287
- createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
288
- updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
289
- finishedAt: alepha154.TOptional<alepha154.TString>;
290
- job: alepha154.TString;
291
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
292
- error: alepha154.TOptional<alepha154.TString>;
293
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
294
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
295
- message: alepha154.TString;
296
- service: alepha154.TString;
297
- module: alepha154.TString;
298
- context: alepha154.TOptional<alepha154.TString>;
299
- app: alepha154.TOptional<alepha154.TString>;
300
- data: alepha154.TOptional<alepha154.TAny>;
301
- timestamp: alepha154.TNumber;
284
+ }>, alepha_orm0.PgRelationMap<alepha179.TObject<{
285
+ id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
286
+ version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
287
+ createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
288
+ updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
289
+ finishedAt: alepha179.TOptional<alepha179.TString>;
290
+ job: alepha179.TString;
291
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
292
+ error: alepha179.TOptional<alepha179.TString>;
293
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
294
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
295
+ message: alepha179.TString;
296
+ service: alepha179.TString;
297
+ module: alepha179.TString;
298
+ context: alepha179.TOptional<alepha179.TString>;
299
+ app: alepha179.TOptional<alepha179.TString>;
300
+ data: alepha179.TOptional<alepha179.TAny>;
301
+ timestamp: alepha179.TNumber;
302
302
  }>>>;
303
303
  }>>>>>;
304
304
  triggerJob(name: string): Promise<{
@@ -312,75 +312,75 @@ declare class AdminJobController {
312
312
  protected readonly group: string;
313
313
  protected readonly jobService: JobService;
314
314
  readonly getJobs: alepha_server0.ActionPrimitiveFn<{
315
- response: alepha154.TArray<alepha154.TString>;
315
+ response: alepha179.TArray<alepha179.TString>;
316
316
  }>;
317
317
  readonly getJobExecutions: alepha_server0.ActionPrimitiveFn<{
318
- query: alepha154.TObject<{
319
- page: alepha154.TOptional<alepha154.TInteger>;
320
- size: alepha154.TOptional<alepha154.TInteger>;
321
- sort: alepha154.TOptional<alepha154.TString>;
322
- status: alepha154.TOptional<alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">>;
323
- job: alepha154.TOptional<alepha154.TString>;
318
+ query: alepha179.TObject<{
319
+ page: alepha179.TOptional<alepha179.TInteger>;
320
+ size: alepha179.TOptional<alepha179.TInteger>;
321
+ sort: alepha179.TOptional<alepha179.TString>;
322
+ status: alepha179.TOptional<alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">>;
323
+ job: alepha179.TOptional<alepha179.TString>;
324
324
  }>;
325
- response: alepha154.TPage<alepha154.TObject<{
326
- id: PgAttr<PgAttr<alepha154.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
327
- version: PgAttr<PgAttr<alepha154.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
328
- createdAt: PgAttr<PgAttr<alepha154.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
329
- updatedAt: PgAttr<PgAttr<alepha154.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
330
- finishedAt: alepha154.TOptional<alepha154.TString>;
331
- job: alepha154.TString;
332
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
333
- error: alepha154.TOptional<alepha154.TString>;
334
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
335
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
336
- message: alepha154.TString;
337
- service: alepha154.TString;
338
- module: alepha154.TString;
339
- context: alepha154.TOptional<alepha154.TString>;
340
- app: alepha154.TOptional<alepha154.TString>;
341
- data: alepha154.TOptional<alepha154.TAny>;
342
- timestamp: alepha154.TNumber;
325
+ response: alepha179.TPage<alepha179.TObject<{
326
+ id: PgAttr<PgAttr<alepha179.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
327
+ version: PgAttr<PgAttr<alepha179.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
328
+ createdAt: PgAttr<PgAttr<alepha179.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
329
+ updatedAt: PgAttr<PgAttr<alepha179.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
330
+ finishedAt: alepha179.TOptional<alepha179.TString>;
331
+ job: alepha179.TString;
332
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
333
+ error: alepha179.TOptional<alepha179.TString>;
334
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
335
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
336
+ message: alepha179.TString;
337
+ service: alepha179.TString;
338
+ module: alepha179.TString;
339
+ context: alepha179.TOptional<alepha179.TString>;
340
+ app: alepha179.TOptional<alepha179.TString>;
341
+ data: alepha179.TOptional<alepha179.TAny>;
342
+ timestamp: alepha179.TNumber;
343
343
  }>>>;
344
344
  }>>;
345
345
  }>;
346
346
  readonly triggerJob: alepha_server0.ActionPrimitiveFn<{
347
- body: alepha154.TObject<{
348
- name: alepha154.TString;
347
+ body: alepha179.TObject<{
348
+ name: alepha179.TString;
349
349
  }>;
350
- response: alepha154.TObject<{
351
- ok: alepha154.TBoolean;
352
- id: alepha154.TOptional<alepha154.TUnion<[alepha154.TString, alepha154.TInteger]>>;
353
- count: alepha154.TOptional<alepha154.TNumber>;
350
+ response: alepha179.TObject<{
351
+ ok: alepha179.TBoolean;
352
+ id: alepha179.TOptional<alepha179.TUnion<[alepha179.TString, alepha179.TInteger]>>;
353
+ count: alepha179.TOptional<alepha179.TNumber>;
354
354
  }>;
355
355
  }>;
356
356
  }
357
357
  //#endregion
358
358
  //#region ../../src/api/jobs/entities/jobExecutions.d.ts
359
- declare const jobExecutions: alepha_orm0.EntityPrimitive<alepha154.TObject<{
360
- id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
361
- version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
362
- createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
363
- updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
364
- finishedAt: alepha154.TOptional<alepha154.TString>;
365
- job: alepha154.TString;
366
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
367
- error: alepha154.TOptional<alepha154.TString>;
368
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
369
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
370
- message: alepha154.TString;
371
- service: alepha154.TString;
372
- module: alepha154.TString;
373
- context: alepha154.TOptional<alepha154.TString>;
374
- app: alepha154.TOptional<alepha154.TString>;
375
- data: alepha154.TOptional<alepha154.TAny>;
376
- timestamp: alepha154.TNumber;
359
+ declare const jobExecutions: alepha_orm0.EntityPrimitive<alepha179.TObject<{
360
+ id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
361
+ version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
362
+ createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
363
+ updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
364
+ finishedAt: alepha179.TOptional<alepha179.TString>;
365
+ job: alepha179.TString;
366
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
367
+ error: alepha179.TOptional<alepha179.TString>;
368
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
369
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
370
+ message: alepha179.TString;
371
+ service: alepha179.TString;
372
+ module: alepha179.TString;
373
+ context: alepha179.TOptional<alepha179.TString>;
374
+ app: alepha179.TOptional<alepha179.TString>;
375
+ data: alepha179.TOptional<alepha179.TAny>;
376
+ timestamp: alepha179.TNumber;
377
377
  }>>>;
378
378
  }>>;
379
379
  type JobExecutionEntity = Static<typeof jobExecutions.schema>;
380
380
  //#endregion
381
381
  //#region ../../src/api/jobs/providers/JobProvider.d.ts
382
- declare const envSchema: alepha154.TObject<{
383
- JOB_PREFIX: alepha154.TOptional<alepha154.TString>;
382
+ declare const envSchema: alepha179.TObject<{
383
+ JOB_PREFIX: alepha179.TOptional<alepha179.TString>;
384
384
  }>;
385
385
  declare module "alepha" {
386
386
  interface Env extends Partial<Static<typeof envSchema>> {}
@@ -393,24 +393,24 @@ declare class JobProvider {
393
393
  protected readonly alepha: Alepha;
394
394
  protected readonly dateTimeProvider: DateTimeProvider;
395
395
  protected readonly cronProvider: CronProvider;
396
- protected readonly executionRepository: alepha_orm0.Repository<alepha154.TObject<{
397
- id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
398
- version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
399
- createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
400
- updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha154.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
401
- finishedAt: alepha154.TOptional<alepha154.TString>;
402
- job: alepha154.TString;
403
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
404
- error: alepha154.TOptional<alepha154.TString>;
405
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
406
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
407
- message: alepha154.TString;
408
- service: alepha154.TString;
409
- module: alepha154.TString;
410
- context: alepha154.TOptional<alepha154.TString>;
411
- app: alepha154.TOptional<alepha154.TString>;
412
- data: alepha154.TOptional<alepha154.TAny>;
413
- timestamp: alepha154.TNumber;
396
+ protected readonly executionRepository: alepha_orm0.Repository<alepha179.TObject<{
397
+ id: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_PRIMARY_KEY>, typeof alepha_orm0.PG_DEFAULT>;
398
+ version: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TInteger, typeof alepha_orm0.PG_VERSION>, typeof alepha_orm0.PG_DEFAULT>;
399
+ createdAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_CREATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
400
+ updatedAt: alepha_orm0.PgAttr<alepha_orm0.PgAttr<alepha179.TString, typeof alepha_orm0.PG_UPDATED_AT>, typeof alepha_orm0.PG_DEFAULT>;
401
+ finishedAt: alepha179.TOptional<alepha179.TString>;
402
+ job: alepha179.TString;
403
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
404
+ error: alepha179.TOptional<alepha179.TString>;
405
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
406
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
407
+ message: alepha179.TString;
408
+ service: alepha179.TString;
409
+ module: alepha179.TString;
410
+ context: alepha179.TOptional<alepha179.TString>;
411
+ app: alepha179.TOptional<alepha179.TString>;
412
+ data: alepha179.TOptional<alepha179.TAny>;
413
+ timestamp: alepha179.TNumber;
414
414
  }>>>;
415
415
  }>>;
416
416
  protected readonly env: {
@@ -504,31 +504,31 @@ interface JobHandlerArguments {
504
504
  }
505
505
  //#endregion
506
506
  //#region ../../src/api/jobs/schemas/jobExecutionResourceSchema.d.ts
507
- declare const jobExecutionResourceSchema: alepha154.TObject<{
508
- id: PgAttr<PgAttr<alepha154.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
509
- version: PgAttr<PgAttr<alepha154.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
510
- createdAt: PgAttr<PgAttr<alepha154.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
511
- updatedAt: PgAttr<PgAttr<alepha154.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
512
- finishedAt: alepha154.TOptional<alepha154.TString>;
513
- job: alepha154.TString;
514
- status: alepha154.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
515
- error: alepha154.TOptional<alepha154.TString>;
516
- logs: alepha154.TOptional<alepha154.TArray<alepha154.TObject<{
517
- level: alepha154.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
518
- message: alepha154.TString;
519
- service: alepha154.TString;
520
- module: alepha154.TString;
521
- context: alepha154.TOptional<alepha154.TString>;
522
- app: alepha154.TOptional<alepha154.TString>;
523
- data: alepha154.TOptional<alepha154.TAny>;
524
- timestamp: alepha154.TNumber;
507
+ declare const jobExecutionResourceSchema: alepha179.TObject<{
508
+ id: PgAttr<PgAttr<alepha179.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
509
+ version: PgAttr<PgAttr<alepha179.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
510
+ createdAt: PgAttr<PgAttr<alepha179.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
511
+ updatedAt: PgAttr<PgAttr<alepha179.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
512
+ finishedAt: alepha179.TOptional<alepha179.TString>;
513
+ job: alepha179.TString;
514
+ status: alepha179.TUnsafe<"STARTED" | "FAILED" | "COMPLETED">;
515
+ error: alepha179.TOptional<alepha179.TString>;
516
+ logs: alepha179.TOptional<alepha179.TArray<alepha179.TObject<{
517
+ level: alepha179.TUnsafe<"SILENT" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR">;
518
+ message: alepha179.TString;
519
+ service: alepha179.TString;
520
+ module: alepha179.TString;
521
+ context: alepha179.TOptional<alepha179.TString>;
522
+ app: alepha179.TOptional<alepha179.TString>;
523
+ data: alepha179.TOptional<alepha179.TAny>;
524
+ timestamp: alepha179.TNumber;
525
525
  }>>>;
526
526
  }>;
527
527
  type JobExecutionResource = Static<typeof jobExecutionResourceSchema>;
528
528
  //#endregion
529
529
  //#region ../../src/api/jobs/schemas/triggerJobSchema.d.ts
530
- declare const triggerJobSchema: alepha154.TObject<{
531
- name: alepha154.TString;
530
+ declare const triggerJobSchema: alepha179.TObject<{
531
+ name: alepha179.TString;
532
532
  }>;
533
533
  type TriggerJob = Static<typeof triggerJobSchema>;
534
534
  //#endregion
@@ -548,7 +548,7 @@ type TriggerJob = Static<typeof triggerJobSchema>;
548
548
  *
549
549
  * @module alepha.api.jobs
550
550
  */
551
- declare const AlephaApiJobs: alepha154.Service<alepha154.Module>;
551
+ declare const AlephaApiJobs: alepha179.Service<alepha179.Module>;
552
552
  //#endregion
553
553
  export { $job, AdminJobController, AlephaApiJobs, Job, JobExecutionEntity, JobExecutionQuery, JobExecutionResource, JobHandlerArguments, JobPrimitive, JobPrimitiveOptions, JobProvider, JobRegistration, JobService, TriggerJob, jobExecutionQuerySchema, jobExecutionResourceSchema, jobExecutions, triggerJobSchema };
554
554
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/orm/schemas/insertSchema.ts","../../../src/orm/schemas/updateSchema.ts","../../../src/orm/primitives/$entity.ts","../../../src/orm/constants/PG_SYMBOLS.ts","../../../src/orm/helpers/pgAttr.ts","../../../src/api/jobs/schemas/jobExecutionQuerySchema.ts","../../../src/api/jobs/services/JobService.ts","../../../src/api/jobs/controllers/AdminJobController.ts","../../../src/api/jobs/entities/jobExecutions.ts","../../../src/api/jobs/providers/JobProvider.ts","../../../src/api/jobs/primitives/$job.ts","../../../src/api/jobs/schemas/jobExecutionResourceSchema.ts","../../../src/api/jobs/schemas/triggerJobSchema.ts","../../../src/api/jobs/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/orm/schemas/insertSchema.ts","../../../src/orm/schemas/updateSchema.ts","../../../src/orm/primitives/$entity.ts","../../../src/orm/constants/PG_SYMBOLS.ts","../../../src/orm/helpers/pgAttr.ts","../../../src/api/jobs/schemas/jobExecutionQuerySchema.ts","../../../src/api/jobs/services/JobService.ts","../../../src/api/jobs/controllers/AdminJobController.ts","../../../src/api/jobs/entities/jobExecutions.ts","../../../src/api/jobs/providers/JobProvider.ts","../../../src/api/jobs/primitives/$job.ts","../../../src/api/jobs/schemas/jobExecutionResourceSchema.ts","../../../src/api/jobs/schemas/triggerJobSchema.ts","../../../src/api/jobs/index.ts"],"mappings":"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"}
@@ -217,12 +217,14 @@ var AdminJobController = class {
217
217
  getJobs = $action({
218
218
  path: this.url,
219
219
  group: this.group,
220
+ secure: true,
220
221
  schema: { response: t.array(t.string()) },
221
222
  handler: () => this.jobService.getJobs()
222
223
  });
223
224
  getJobExecutions = $action({
224
225
  path: `${this.url}/executions`,
225
226
  group: this.group,
227
+ secure: true,
226
228
  schema: {
227
229
  query: jobExecutionQuerySchema,
228
230
  response: t.page(jobExecutionResourceSchema)
@@ -233,6 +235,7 @@ var AdminJobController = class {
233
235
  method: "POST",
234
236
  path: `${this.url}/trigger`,
235
237
  group: this.group,
238
+ secure: true,
236
239
  schema: {
237
240
  body: triggerJobSchema,
238
241
  response: okSchema
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/api/jobs/schemas/jobExecutionQuerySchema.ts","../../../src/api/jobs/entities/jobExecutions.ts","../../../src/api/jobs/schemas/jobExecutionResourceSchema.ts","../../../src/api/jobs/schemas/triggerJobSchema.ts","../../../src/api/jobs/providers/JobProvider.ts","../../../src/api/jobs/primitives/$job.ts","../../../src/api/jobs/services/JobService.ts","../../../src/api/jobs/controllers/AdminJobController.ts","../../../src/api/jobs/index.ts"],"sourcesContent":["import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\nimport { pageQuerySchema } from \"alepha/orm\";\n\nexport const jobExecutionQuerySchema = t.extend(pageQuerySchema, {\n status: t.optional(t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"])),\n job: t.optional(\n t.text({\n description: \"Filter by job name\",\n }),\n ),\n});\n\nexport type JobExecutionQuery = Static<typeof jobExecutionQuerySchema>;\n","import { type Static, t } from \"alepha\";\nimport { logEntrySchema } from \"alepha/logger\";\nimport { $entity, db } from \"alepha/orm\";\n\nexport const jobExecutions = $entity({\n name: \"job_executions\",\n schema: t.object({\n id: db.primaryKey(t.uuid()),\n version: db.version(),\n createdAt: db.createdAt(),\n updatedAt: db.updatedAt(),\n finishedAt: t.optional(t.datetime()),\n job: t.string(),\n status: t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"]),\n error: t.optional(t.string()),\n logs: t.optional(t.array(logEntrySchema)),\n }),\n});\n\nexport type JobExecutionEntity = Static<typeof jobExecutions.schema>;\n","import { type Static, t } from \"alepha\";\nimport { jobExecutions } from \"../entities/jobExecutions.ts\";\n\nexport const jobExecutionResourceSchema = t.extend(\n jobExecutions.schema,\n {},\n {\n title: \"JobExecutionResource\",\n description:\n \"A job execution resource representing the execution details of a job.\",\n },\n);\n\nexport type JobExecutionResource = Static<typeof jobExecutionResourceSchema>;\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const triggerJobSchema = t.object({\n name: t.string(),\n});\n\nexport type TriggerJob = Static<typeof triggerJobSchema>;\n","import { $env, $inject, Alepha, type Async, type Static, t } from \"alepha\";\nimport { type DateTime, DateTimeProvider } from \"alepha/datetime\";\nimport { $lock, type LockPrimitive } from \"alepha/lock\";\nimport type { LogEntry } from \"alepha/logger\";\nimport { $repository } from \"alepha/orm\";\nimport { CronProvider } from \"alepha/scheduler\";\nimport { jobExecutions } from \"../entities/jobExecutions.ts\";\n\nconst envSchema = t.object({\n JOB_PREFIX: t.optional(\n t.text({\n description: \"Prefix for job lock keys\",\n }),\n ),\n});\n\ndeclare module \"alepha\" {\n interface Env extends Partial<Static<typeof envSchema>> {}\n}\n\n/**\n * Provider for job management and execution.\n * Handles job lifecycle, execution tracking, log capturing, and event emission.\n */\nexport class JobProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly cronProvider = $inject(CronProvider);\n protected readonly executionRepository = $repository(jobExecutions);\n protected readonly env = $env(envSchema);\n protected readonly logs = new Map<string, LogEntry[]>();\n protected readonly jobs = new Map<string, JobRegistration>();\n\n /**\n * Register and set up a job for execution (called during primitive initialization).\n */\n public registerJob(options: Job): JobRegistration {\n const jobName = options.name;\n\n // Set up log capturing for this job (only once)\n if (this.jobs.size === 0) {\n this.alepha.events.on(\"log\", ({ entry }) => {\n const context = entry.context;\n if (!context) {\n return;\n }\n\n const entries = this.logs.get(context);\n if (!entries) {\n return;\n }\n\n entries.push(entry);\n this.logs.set(context, entries);\n });\n }\n\n // Create lock primitive if locking is enabled\n const lockPrimitive =\n options.lock !== false\n ? $lock({\n name: () => {\n const prefix = this.env.JOB_PREFIX\n ? `${this.env.JOB_PREFIX}:`\n : \"\";\n return `${prefix}job:${jobName}`;\n },\n handler: async () => {\n await this.executeJob(jobName, options.handler);\n },\n })\n : null;\n\n const registration: JobRegistration = {\n name: jobName,\n options,\n lockPrimitive,\n };\n\n this.jobs.set(jobName, registration);\n\n // Set up cron scheduling if provided\n if (options.cron) {\n this.cronProvider.createCronJob(jobName, options.cron, () =>\n this.triggerJob(jobName),\n );\n }\n\n return registration;\n }\n\n /**\n * Trigger a job by name.\n */\n public async triggerJob(jobName: string): Promise<void> {\n const registration = this.jobs.get(jobName);\n if (!registration) {\n throw new Error(`Job not registered: ${jobName}`);\n }\n\n // Execute handler with or without lock\n if (registration.options.lock !== false && registration.lockPrimitive) {\n await registration.lockPrimitive.run();\n } else {\n await this.executeJob(jobName, registration.options.handler);\n }\n }\n\n /**\n * Execute a job handler (called by the job primitive).\n */\n public async executeJob(\n jobName: string,\n handler: (args: { now: DateTime }) => Async<void>,\n ): Promise<void> {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n const context = this.alepha.context.createContextId();\n\n await this.alepha.context.run(\n async () => {\n try {\n const now = this.dateTimeProvider.now();\n\n // Initialize log collection for this context\n this.logs.set(context, []);\n\n // Create execution record\n await this.executionRepository.create({\n job: jobName,\n status: \"STARTED\",\n });\n\n await this.alepha.events.emit(\"scheduler:begin\", {\n name: jobName,\n now,\n context,\n });\n\n // Execute the handler\n await handler({ now });\n\n // Update execution as completed\n const logs = this.logs.get(context) || [];\n const exec = await this.executionRepository.findOne({\n where: {\n job: jobName,\n status: \"STARTED\",\n },\n });\n\n exec.status = \"COMPLETED\";\n exec.logs = logs;\n exec.finishedAt = this.dateTimeProvider.nowISOString();\n\n await this.executionRepository.save(exec);\n\n await this.alepha.events.emit(\n \"scheduler:success\",\n {\n name: jobName,\n context,\n },\n {\n catch: true,\n },\n );\n } catch (error) {\n // Update execution as failed\n const logs = this.logs.get(context) || [];\n const exec = await this.executionRepository.findOne({\n where: {\n job: jobName,\n status: \"STARTED\",\n },\n });\n\n exec.status = \"FAILED\";\n exec.error = (error as Error).message;\n exec.logs = logs;\n exec.finishedAt = this.dateTimeProvider.nowISOString();\n\n await this.executionRepository.save(exec);\n\n await this.alepha.events.emit(\n \"scheduler:error\",\n {\n name: jobName,\n error: error as Error,\n context,\n },\n {\n catch: true,\n },\n );\n\n // Don't re-throw, jobs should handle errors gracefully\n }\n\n // Clean up logs\n this.logs.delete(context);\n\n await this.alepha.events.emit(\n \"scheduler:end\",\n {\n name: jobName,\n context,\n },\n {\n catch: true,\n },\n );\n },\n {\n context,\n },\n );\n }\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Job {\n /**\n * Name of the job.\n */\n name: string;\n\n /**\n * Optional description of the job.\n */\n description?: string;\n\n /**\n * Function to run on schedule.\n */\n handler: (args: { now: DateTime }) => Async<void>;\n\n /**\n * Cron expression to run the job.\n */\n cron?: string;\n\n /**\n * If true, the job will be locked and only one instance will run at a time.\n * You probably need to import {@link AlephaLockRedis} for distributed locking.\n *\n * @default true\n */\n lock?: boolean;\n\n /**\n * Optional prefix for job lock keys.\n */\n lockPrefix?: string;\n}\n\nexport interface JobRegistration {\n name: string;\n options: Job;\n lockPrimitive: LockPrimitive<() => Promise<void>> | null;\n}\n","import { $inject, createPrimitive, KIND, Primitive } from \"alepha\";\nimport type { DateTime } from \"alepha/datetime\";\nimport { type Job, JobProvider } from \"../providers/JobProvider.ts\";\n\n/**\n * Job primitive - a drop-in replacement for $scheduler with built-in execution tracking.\n */\nexport const $job = (options: JobPrimitiveOptions): JobPrimitive => {\n return createPrimitive(JobPrimitive, options);\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport type JobPrimitiveOptions = Omit<Job, \"name\"> & {\n /**\n * Name of the job. Defaults to the primitive property name.\n */\n name?: string;\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class JobPrimitive extends Primitive<JobPrimitiveOptions> {\n protected readonly jobProvider = $inject(JobProvider);\n\n public get name(): string {\n return (\n this.options.name ??\n `${this.config.service.name}.${this.config.propertyKey}`\n );\n }\n\n protected onInit() {\n // Register job with JobProvider\n this.jobProvider.registerJob({\n ...this.options,\n name: this.name,\n });\n }\n\n public async trigger(): Promise<void> {\n await this.jobProvider.triggerJob(this.name);\n }\n}\n\n$job[KIND] = JobPrimitive;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface JobHandlerArguments {\n now: DateTime;\n}\n","import { $inject, Alepha } from \"alepha\";\nimport { $repository } from \"alepha/orm\";\nimport { jobExecutions } from \"../entities/jobExecutions.ts\";\nimport { $job } from \"../primitives/$job.ts\";\nimport type { JobExecutionQuery } from \"../schemas/jobExecutionQuerySchema.ts\";\n\nexport class JobService {\n protected readonly alepha = $inject(Alepha);\n protected readonly executionRepository = $repository(jobExecutions);\n\n public async getJobs(): Promise<string[]> {\n const jobPrimitives = this.alepha.primitives($job);\n return jobPrimitives.map((job) => job.name);\n }\n\n public async getJobExecutions(query: JobExecutionQuery = {}) {\n query.sort ??= \"-createdAt\";\n\n const where = this.executionRepository.createQueryWhere();\n\n if (query.job) {\n where.job = { eq: query.job };\n }\n\n if (query.status) {\n where.status = { eq: query.status };\n }\n\n return await this.executionRepository.paginate(\n query,\n { where },\n { count: true },\n );\n }\n\n public async triggerJob(name: string): Promise<{ ok: boolean }> {\n const jobPrimitives = this.alepha.primitives($job);\n const job = jobPrimitives.find((j) => j.name === name);\n\n if (!job) {\n throw new Error(`Job not found: ${name}`);\n }\n\n await job.trigger();\n return { ok: true };\n }\n}\n","import { $inject, t } from \"alepha\";\nimport { $action, okSchema } from \"alepha/server\";\nimport { jobExecutionQuerySchema } from \"../schemas/jobExecutionQuerySchema.ts\";\nimport { jobExecutionResourceSchema } from \"../schemas/jobExecutionResourceSchema.ts\";\nimport { triggerJobSchema } from \"../schemas/triggerJobSchema.ts\";\nimport { JobService } from \"../services/JobService.ts\";\n\nexport class AdminJobController {\n protected readonly url: string = \"/jobs\";\n protected readonly group: string = \"admin:jobs\";\n protected readonly jobService = $inject(JobService);\n\n public readonly getJobs = $action({\n path: this.url,\n group: this.group,\n schema: {\n response: t.array(t.string()),\n },\n handler: () => this.jobService.getJobs(),\n });\n\n public readonly getJobExecutions = $action({\n path: `${this.url}/executions`,\n group: this.group,\n schema: {\n query: jobExecutionQuerySchema,\n response: t.page(jobExecutionResourceSchema),\n },\n handler: ({ query }) => this.jobService.getJobExecutions(query),\n });\n\n public readonly triggerJob = $action({\n method: \"POST\",\n path: `${this.url}/trigger`,\n group: this.group,\n schema: {\n body: triggerJobSchema,\n response: okSchema,\n },\n handler: ({ body }) => this.jobService.triggerJob(body.name),\n });\n}\n","import { $module } from \"alepha\";\nimport { AdminJobController } from \"./controllers/AdminJobController.ts\";\nimport { JobProvider } from \"./providers/JobProvider.ts\";\nimport { JobService } from \"./services/JobService.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./controllers/AdminJobController.ts\";\nexport * from \"./entities/jobExecutions.ts\";\nexport * from \"./primitives/$job.ts\";\nexport * from \"./providers/JobProvider.ts\";\nexport * from \"./schemas/jobExecutionQuerySchema.ts\";\nexport * from \"./schemas/jobExecutionResourceSchema.ts\";\nexport * from \"./schemas/triggerJobSchema.ts\";\nexport * from \"./services/JobService.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * | type | quality | stability |\n * |------|---------|-----------|\n * | backend | standard | stable |\n *\n * Job execution monitoring.\n *\n * **Features:**\n * - Job definitions for tracking\n * - Job status tracking\n * - Execution history\n * - Retry management\n *\n * @module alepha.api.jobs\n */\nexport const AlephaApiJobs = $module({\n name: \"alepha.api.jobs\",\n services: [AdminJobController, JobProvider, JobService],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/api/jobs/schemas/jobExecutionQuerySchema.ts","../../../src/api/jobs/entities/jobExecutions.ts","../../../src/api/jobs/schemas/jobExecutionResourceSchema.ts","../../../src/api/jobs/schemas/triggerJobSchema.ts","../../../src/api/jobs/providers/JobProvider.ts","../../../src/api/jobs/primitives/$job.ts","../../../src/api/jobs/services/JobService.ts","../../../src/api/jobs/controllers/AdminJobController.ts","../../../src/api/jobs/index.ts"],"sourcesContent":["import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\nimport { pageQuerySchema } from \"alepha/orm\";\n\nexport const jobExecutionQuerySchema = t.extend(pageQuerySchema, {\n status: t.optional(t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"])),\n job: t.optional(\n t.text({\n description: \"Filter by job name\",\n }),\n ),\n});\n\nexport type JobExecutionQuery = Static<typeof jobExecutionQuerySchema>;\n","import { type Static, t } from \"alepha\";\nimport { logEntrySchema } from \"alepha/logger\";\nimport { $entity, db } from \"alepha/orm\";\n\nexport const jobExecutions = $entity({\n name: \"job_executions\",\n schema: t.object({\n id: db.primaryKey(t.uuid()),\n version: db.version(),\n createdAt: db.createdAt(),\n updatedAt: db.updatedAt(),\n finishedAt: t.optional(t.datetime()),\n job: t.string(),\n status: t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"]),\n error: t.optional(t.string()),\n logs: t.optional(t.array(logEntrySchema)),\n }),\n});\n\nexport type JobExecutionEntity = Static<typeof jobExecutions.schema>;\n","import { type Static, t } from \"alepha\";\nimport { jobExecutions } from \"../entities/jobExecutions.ts\";\n\nexport const jobExecutionResourceSchema = t.extend(\n jobExecutions.schema,\n {},\n {\n title: \"JobExecutionResource\",\n description:\n \"A job execution resource representing the execution details of a job.\",\n },\n);\n\nexport type JobExecutionResource = Static<typeof jobExecutionResourceSchema>;\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const triggerJobSchema = t.object({\n name: t.string(),\n});\n\nexport type TriggerJob = Static<typeof triggerJobSchema>;\n","import { $env, $inject, Alepha, type Async, type Static, t } from \"alepha\";\nimport { type DateTime, DateTimeProvider } from \"alepha/datetime\";\nimport { $lock, type LockPrimitive } from \"alepha/lock\";\nimport type { LogEntry } from \"alepha/logger\";\nimport { $repository } from \"alepha/orm\";\nimport { CronProvider } from \"alepha/scheduler\";\nimport { jobExecutions } from \"../entities/jobExecutions.ts\";\n\nconst envSchema = t.object({\n JOB_PREFIX: t.optional(\n t.text({\n description: \"Prefix for job lock keys\",\n }),\n ),\n});\n\ndeclare module \"alepha\" {\n interface Env extends Partial<Static<typeof envSchema>> {}\n}\n\n/**\n * Provider for job management and execution.\n * Handles job lifecycle, execution tracking, log capturing, and event emission.\n */\nexport class JobProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly cronProvider = $inject(CronProvider);\n protected readonly executionRepository = $repository(jobExecutions);\n protected readonly env = $env(envSchema);\n protected readonly logs = new Map<string, LogEntry[]>();\n protected readonly jobs = new Map<string, JobRegistration>();\n\n /**\n * Register and set up a job for execution (called during primitive initialization).\n */\n public registerJob(options: Job): JobRegistration {\n const jobName = options.name;\n\n // Set up log capturing for this job (only once)\n if (this.jobs.size === 0) {\n this.alepha.events.on(\"log\", ({ entry }) => {\n const context = entry.context;\n if (!context) {\n return;\n }\n\n const entries = this.logs.get(context);\n if (!entries) {\n return;\n }\n\n entries.push(entry);\n this.logs.set(context, entries);\n });\n }\n\n // Create lock primitive if locking is enabled\n const lockPrimitive =\n options.lock !== false\n ? $lock({\n name: () => {\n const prefix = this.env.JOB_PREFIX\n ? `${this.env.JOB_PREFIX}:`\n : \"\";\n return `${prefix}job:${jobName}`;\n },\n handler: async () => {\n await this.executeJob(jobName, options.handler);\n },\n })\n : null;\n\n const registration: JobRegistration = {\n name: jobName,\n options,\n lockPrimitive,\n };\n\n this.jobs.set(jobName, registration);\n\n // Set up cron scheduling if provided\n if (options.cron) {\n this.cronProvider.createCronJob(jobName, options.cron, () =>\n this.triggerJob(jobName),\n );\n }\n\n return registration;\n }\n\n /**\n * Trigger a job by name.\n */\n public async triggerJob(jobName: string): Promise<void> {\n const registration = this.jobs.get(jobName);\n if (!registration) {\n throw new Error(`Job not registered: ${jobName}`);\n }\n\n // Execute handler with or without lock\n if (registration.options.lock !== false && registration.lockPrimitive) {\n await registration.lockPrimitive.run();\n } else {\n await this.executeJob(jobName, registration.options.handler);\n }\n }\n\n /**\n * Execute a job handler (called by the job primitive).\n */\n public async executeJob(\n jobName: string,\n handler: (args: { now: DateTime }) => Async<void>,\n ): Promise<void> {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n const context = this.alepha.context.createContextId();\n\n await this.alepha.context.run(\n async () => {\n try {\n const now = this.dateTimeProvider.now();\n\n // Initialize log collection for this context\n this.logs.set(context, []);\n\n // Create execution record\n await this.executionRepository.create({\n job: jobName,\n status: \"STARTED\",\n });\n\n await this.alepha.events.emit(\"scheduler:begin\", {\n name: jobName,\n now,\n context,\n });\n\n // Execute the handler\n await handler({ now });\n\n // Update execution as completed\n const logs = this.logs.get(context) || [];\n const exec = await this.executionRepository.findOne({\n where: {\n job: jobName,\n status: \"STARTED\",\n },\n });\n\n exec.status = \"COMPLETED\";\n exec.logs = logs;\n exec.finishedAt = this.dateTimeProvider.nowISOString();\n\n await this.executionRepository.save(exec);\n\n await this.alepha.events.emit(\n \"scheduler:success\",\n {\n name: jobName,\n context,\n },\n {\n catch: true,\n },\n );\n } catch (error) {\n // Update execution as failed\n const logs = this.logs.get(context) || [];\n const exec = await this.executionRepository.findOne({\n where: {\n job: jobName,\n status: \"STARTED\",\n },\n });\n\n exec.status = \"FAILED\";\n exec.error = (error as Error).message;\n exec.logs = logs;\n exec.finishedAt = this.dateTimeProvider.nowISOString();\n\n await this.executionRepository.save(exec);\n\n await this.alepha.events.emit(\n \"scheduler:error\",\n {\n name: jobName,\n error: error as Error,\n context,\n },\n {\n catch: true,\n },\n );\n\n // Don't re-throw, jobs should handle errors gracefully\n }\n\n // Clean up logs\n this.logs.delete(context);\n\n await this.alepha.events.emit(\n \"scheduler:end\",\n {\n name: jobName,\n context,\n },\n {\n catch: true,\n },\n );\n },\n {\n context,\n },\n );\n }\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Job {\n /**\n * Name of the job.\n */\n name: string;\n\n /**\n * Optional description of the job.\n */\n description?: string;\n\n /**\n * Function to run on schedule.\n */\n handler: (args: { now: DateTime }) => Async<void>;\n\n /**\n * Cron expression to run the job.\n */\n cron?: string;\n\n /**\n * If true, the job will be locked and only one instance will run at a time.\n * You probably need to import {@link AlephaLockRedis} for distributed locking.\n *\n * @default true\n */\n lock?: boolean;\n\n /**\n * Optional prefix for job lock keys.\n */\n lockPrefix?: string;\n}\n\nexport interface JobRegistration {\n name: string;\n options: Job;\n lockPrimitive: LockPrimitive<() => Promise<void>> | null;\n}\n","import { $inject, createPrimitive, KIND, Primitive } from \"alepha\";\nimport type { DateTime } from \"alepha/datetime\";\nimport { type Job, JobProvider } from \"../providers/JobProvider.ts\";\n\n/**\n * Job primitive - a drop-in replacement for $scheduler with built-in execution tracking.\n */\nexport const $job = (options: JobPrimitiveOptions): JobPrimitive => {\n return createPrimitive(JobPrimitive, options);\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport type JobPrimitiveOptions = Omit<Job, \"name\"> & {\n /**\n * Name of the job. Defaults to the primitive property name.\n */\n name?: string;\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class JobPrimitive extends Primitive<JobPrimitiveOptions> {\n protected readonly jobProvider = $inject(JobProvider);\n\n public get name(): string {\n return (\n this.options.name ??\n `${this.config.service.name}.${this.config.propertyKey}`\n );\n }\n\n protected onInit() {\n // Register job with JobProvider\n this.jobProvider.registerJob({\n ...this.options,\n name: this.name,\n });\n }\n\n public async trigger(): Promise<void> {\n await this.jobProvider.triggerJob(this.name);\n }\n}\n\n$job[KIND] = JobPrimitive;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface JobHandlerArguments {\n now: DateTime;\n}\n","import { $inject, Alepha } from \"alepha\";\nimport { $repository } from \"alepha/orm\";\nimport { jobExecutions } from \"../entities/jobExecutions.ts\";\nimport { $job } from \"../primitives/$job.ts\";\nimport type { JobExecutionQuery } from \"../schemas/jobExecutionQuerySchema.ts\";\n\nexport class JobService {\n protected readonly alepha = $inject(Alepha);\n protected readonly executionRepository = $repository(jobExecutions);\n\n public async getJobs(): Promise<string[]> {\n const jobPrimitives = this.alepha.primitives($job);\n return jobPrimitives.map((job) => job.name);\n }\n\n public async getJobExecutions(query: JobExecutionQuery = {}) {\n query.sort ??= \"-createdAt\";\n\n const where = this.executionRepository.createQueryWhere();\n\n if (query.job) {\n where.job = { eq: query.job };\n }\n\n if (query.status) {\n where.status = { eq: query.status };\n }\n\n return await this.executionRepository.paginate(\n query,\n { where },\n { count: true },\n );\n }\n\n public async triggerJob(name: string): Promise<{ ok: boolean }> {\n const jobPrimitives = this.alepha.primitives($job);\n const job = jobPrimitives.find((j) => j.name === name);\n\n if (!job) {\n throw new Error(`Job not found: ${name}`);\n }\n\n await job.trigger();\n return { ok: true };\n }\n}\n","import { $inject, t } from \"alepha\";\nimport { $action, okSchema } from \"alepha/server\";\nimport { jobExecutionQuerySchema } from \"../schemas/jobExecutionQuerySchema.ts\";\nimport { jobExecutionResourceSchema } from \"../schemas/jobExecutionResourceSchema.ts\";\nimport { triggerJobSchema } from \"../schemas/triggerJobSchema.ts\";\nimport { JobService } from \"../services/JobService.ts\";\n\nexport class AdminJobController {\n protected readonly url: string = \"/jobs\";\n protected readonly group: string = \"admin:jobs\";\n protected readonly jobService = $inject(JobService);\n\n public readonly getJobs = $action({\n path: this.url,\n group: this.group,\n secure: true,\n schema: {\n response: t.array(t.string()),\n },\n handler: () => this.jobService.getJobs(),\n });\n\n public readonly getJobExecutions = $action({\n path: `${this.url}/executions`,\n group: this.group,\n secure: true,\n schema: {\n query: jobExecutionQuerySchema,\n response: t.page(jobExecutionResourceSchema),\n },\n handler: ({ query }) => this.jobService.getJobExecutions(query),\n });\n\n public readonly triggerJob = $action({\n method: \"POST\",\n path: `${this.url}/trigger`,\n group: this.group,\n secure: true,\n schema: {\n body: triggerJobSchema,\n response: okSchema,\n },\n handler: ({ body }) => this.jobService.triggerJob(body.name),\n });\n}\n","import { $module } from \"alepha\";\nimport { AdminJobController } from \"./controllers/AdminJobController.ts\";\nimport { JobProvider } from \"./providers/JobProvider.ts\";\nimport { JobService } from \"./services/JobService.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./controllers/AdminJobController.ts\";\nexport * from \"./entities/jobExecutions.ts\";\nexport * from \"./primitives/$job.ts\";\nexport * from \"./providers/JobProvider.ts\";\nexport * from \"./schemas/jobExecutionQuerySchema.ts\";\nexport * from \"./schemas/jobExecutionResourceSchema.ts\";\nexport * from \"./schemas/triggerJobSchema.ts\";\nexport * from \"./services/JobService.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * | type | quality | stability |\n * |------|---------|-----------|\n * | backend | standard | stable |\n *\n * Job execution monitoring.\n *\n * **Features:**\n * - Job definitions for tracking\n * - Job status tracking\n * - Execution history\n * - Retry management\n *\n * @module alepha.api.jobs\n */\nexport const AlephaApiJobs = $module({\n name: \"alepha.api.jobs\",\n services: [AdminJobController, JobProvider, JobService],\n});\n"],"mappings":"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"}