glasswork 1.1.0 → 1.3.0

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 (116) hide show
  1. package/CHANGELOG.md +57 -1
  2. package/README.md +3 -0
  3. package/dist/auth/better-auth-provider.d.ts +11 -3
  4. package/dist/auth/better-auth-provider.d.ts.map +1 -1
  5. package/dist/auth/better-auth-provider.js +15 -6
  6. package/dist/auth/better-auth-provider.js.map +1 -1
  7. package/dist/auth/middleware.d.ts +1 -1
  8. package/dist/auth/middleware.d.ts.map +1 -1
  9. package/dist/auth/middleware.js +18 -10
  10. package/dist/auth/middleware.js.map +1 -1
  11. package/dist/auth/types.d.ts +6 -2
  12. package/dist/auth/types.d.ts.map +1 -1
  13. package/dist/core/bootstrap.d.ts.map +1 -1
  14. package/dist/core/bootstrap.js +16 -7
  15. package/dist/core/bootstrap.js.map +1 -1
  16. package/dist/core/module-graph.js +3 -0
  17. package/dist/core/module-graph.js.map +1 -1
  18. package/dist/core/request-scope.d.ts +12 -0
  19. package/dist/core/request-scope.d.ts.map +1 -0
  20. package/dist/core/request-scope.js +86 -0
  21. package/dist/core/request-scope.js.map +1 -0
  22. package/dist/core/route-factory.d.ts +1 -0
  23. package/dist/core/route-factory.d.ts.map +1 -1
  24. package/dist/core/types.d.ts +6 -1
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/email/compiler/compiler.d.ts.map +1 -1
  27. package/dist/email/compiler/compiler.js +69 -17
  28. package/dist/email/compiler/compiler.js.map +1 -1
  29. package/dist/email/compiler/tokenizer.js +4 -2
  30. package/dist/email/compiler/tokenizer.js.map +1 -1
  31. package/dist/email/compiler/types.d.ts +2 -0
  32. package/dist/email/compiler/types.d.ts.map +1 -1
  33. package/dist/email/transports/ses-transport.d.ts +8 -0
  34. package/dist/email/transports/ses-transport.d.ts.map +1 -1
  35. package/dist/email/transports/ses-transport.js +132 -25
  36. package/dist/email/transports/ses-transport.js.map +1 -1
  37. package/dist/email/webhooks/handler-factory.d.ts +1 -0
  38. package/dist/email/webhooks/handler-factory.d.ts.map +1 -1
  39. package/dist/email/webhooks/handler-factory.js +40 -38
  40. package/dist/email/webhooks/handler-factory.js.map +1 -1
  41. package/dist/email/webhooks/notification-parser.d.ts +1 -1
  42. package/dist/email/webhooks/notification-parser.js +1 -1
  43. package/dist/email/webhooks/signature-verification.d.ts +4 -2
  44. package/dist/email/webhooks/signature-verification.d.ts.map +1 -1
  45. package/dist/email/webhooks/signature-verification.js +63 -8
  46. package/dist/email/webhooks/signature-verification.js.map +1 -1
  47. package/dist/email/webhooks/subscription-handler.d.ts +4 -2
  48. package/dist/email/webhooks/subscription-handler.d.ts.map +1 -1
  49. package/dist/email/webhooks/subscription-handler.js +42 -6
  50. package/dist/email/webhooks/subscription-handler.js.map +1 -1
  51. package/dist/email/webhooks/types.d.ts +17 -2
  52. package/dist/email/webhooks/types.d.ts.map +1 -1
  53. package/dist/jobs/define-job.d.ts +4 -4
  54. package/dist/jobs/define-job.d.ts.map +1 -1
  55. package/dist/jobs/drivers/mock-driver.d.ts.map +1 -1
  56. package/dist/jobs/drivers/mock-driver.js +11 -1
  57. package/dist/jobs/drivers/mock-driver.js.map +1 -1
  58. package/dist/jobs/index.d.ts +2 -2
  59. package/dist/jobs/index.d.ts.map +1 -1
  60. package/dist/jobs/index.js +1 -1
  61. package/dist/jobs/index.js.map +1 -1
  62. package/dist/jobs/job-service.d.ts +6 -6
  63. package/dist/jobs/job-service.d.ts.map +1 -1
  64. package/dist/jobs/job-service.js +8 -0
  65. package/dist/jobs/job-service.js.map +1 -1
  66. package/dist/jobs/observability/emf.d.ts +5 -15
  67. package/dist/jobs/observability/emf.d.ts.map +1 -1
  68. package/dist/jobs/observability/emf.js +87 -67
  69. package/dist/jobs/observability/emf.js.map +1 -1
  70. package/dist/jobs/observability/index.d.ts +2 -4
  71. package/dist/jobs/observability/index.d.ts.map +1 -1
  72. package/dist/jobs/observability/index.js +1 -3
  73. package/dist/jobs/observability/index.js.map +1 -1
  74. package/dist/jobs/observability/types.d.ts +16 -193
  75. package/dist/jobs/observability/types.d.ts.map +1 -1
  76. package/dist/jobs/types.d.ts +4 -4
  77. package/dist/jobs/types.d.ts.map +1 -1
  78. package/dist/jobs/worker.d.ts +5 -0
  79. package/dist/jobs/worker.d.ts.map +1 -1
  80. package/dist/jobs/worker.js +73 -12
  81. package/dist/jobs/worker.js.map +1 -1
  82. package/dist/list-query/builder.d.ts +2 -1
  83. package/dist/list-query/builder.d.ts.map +1 -1
  84. package/dist/list-query/builder.js +23 -15
  85. package/dist/list-query/builder.js.map +1 -1
  86. package/dist/middleware/rate-limit.d.ts.map +1 -1
  87. package/dist/middleware/rate-limit.js +60 -92
  88. package/dist/middleware/rate-limit.js.map +1 -1
  89. package/dist/openapi/openapi.d.ts +1 -4
  90. package/dist/openapi/openapi.d.ts.map +1 -1
  91. package/dist/openapi/openapi.js +15 -35
  92. package/dist/openapi/openapi.js.map +1 -1
  93. package/dist/sse/index.d.ts +6 -0
  94. package/dist/sse/index.d.ts.map +1 -0
  95. package/dist/sse/index.js +18 -0
  96. package/dist/sse/index.js.map +1 -0
  97. package/dist/sse/sse-broadcaster.d.ts +38 -0
  98. package/dist/sse/sse-broadcaster.d.ts.map +1 -0
  99. package/dist/sse/sse-broadcaster.js +118 -0
  100. package/dist/sse/sse-broadcaster.js.map +1 -0
  101. package/dist/utils/get-client-ip.d.ts.map +1 -1
  102. package/dist/utils/get-client-ip.js +22 -13
  103. package/dist/utils/get-client-ip.js.map +1 -1
  104. package/package.json +11 -3
  105. package/dist/jobs/observability/client.d.ts +0 -26
  106. package/dist/jobs/observability/client.d.ts.map +0 -1
  107. package/dist/jobs/observability/client.js +0 -286
  108. package/dist/jobs/observability/client.js.map +0 -1
  109. package/dist/jobs/observability/dashboard.d.ts +0 -19
  110. package/dist/jobs/observability/dashboard.d.ts.map +0 -1
  111. package/dist/jobs/observability/dashboard.js +0 -144
  112. package/dist/jobs/observability/dashboard.js.map +0 -1
  113. package/dist/jobs/scheduler.d.ts +0 -17
  114. package/dist/jobs/scheduler.d.ts.map +0 -1
  115. package/dist/jobs/scheduler.js +0 -83
  116. package/dist/jobs/scheduler.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/email/webhooks/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/email/webhooks/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { BaseIssue, BaseSchema, InferInput } from 'valibot';
1
+ import type { BaseIssue, BaseSchema, InferInput, InferOutput } from 'valibot';
2
2
  import type { JobDefinition, RetryConfig } from './types.js';
3
3
  /**
4
4
  * Define a background job with typed payload and handler.
@@ -43,9 +43,9 @@ export declare function defineJob<TSchema extends BaseSchema<unknown, unknown, B
43
43
  deadLetterQueue?: string;
44
44
  schema: TSchema;
45
45
  retry?: RetryConfig | number | false;
46
- unique?: JobDefinition<InferInput<TSchema>>['unique'];
47
- handler: JobDefinition<InferInput<TSchema>>['handler'];
48
- }): JobDefinition<InferInput<TSchema>>;
46
+ unique?: JobDefinition<InferInput<TSchema>, InferOutput<TSchema>>['unique'];
47
+ handler: JobDefinition<InferInput<TSchema>, InferOutput<TSchema>>['handler'];
48
+ }): JobDefinition<InferInput<TSchema>, InferOutput<TSchema>>;
49
49
  export declare function defineJob<TPayload>(config: {
50
50
  name: string;
51
51
  queue?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"define-job.d.ts","sourceRoot":"","sources":["../../src/jobs/define-job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,SAAS,CACvB,OAAO,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAChE,MAAM,EAAE;IACR,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CACxD,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvC,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;CAC7C,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"define-job.d.ts","sourceRoot":"","sources":["../../src/jobs/define-job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,SAAS,CACvB,OAAO,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAChE,MAAM,EAAE;IACR,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5E,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAC9E,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;CAC7C,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mock-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EAGb,UAAU,EACV,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgC;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAM;IAE1C,YAAY,MAAM,GAAE,qBAA0B,EAI7C;IAED;;OAEG;IACH,eAAe,CAAC,KAAK,QAAoC,GAAG,IAAI,CAE/D;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAED,IAAI,OAAO,IAAI,eAAe,GAAG,SAAS,CAEzC;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAczD;IAED,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;YAMd,kBAAkB;IAgChC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;YAoBV,aAAa;IAyB3B,OAAO,CAAC,wBAAwB;IAO1B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAOrE;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;CACF"}
1
+ {"version":3,"file":"mock-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EAGb,UAAU,EACV,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgC;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAM;IAE1C,YAAY,MAAM,GAAE,qBAA0B,EAI7C;IAED;;OAEG;IACH,eAAe,CAAC,KAAK,QAAoC,GAAG,IAAI,CAE/D;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAED,IAAI,OAAO,IAAI,eAAe,GAAG,SAAS,CAEzC;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAczD;IAED,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;YAMd,kBAAkB;IAyChC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;YAoBV,aAAa;IAyB3B,OAAO,CAAC,wBAAwB;IAO1B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAOrE;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;CACF"}
@@ -1,3 +1,5 @@
1
+ import { safeParse } from 'valibot';
2
+ import { InvalidJobPayloadError } from '../errors.js';
1
3
  import { generateJobId } from '../utils.js';
2
4
  /**
3
5
  * In-memory queue driver for testing and local development.
@@ -89,11 +91,19 @@ export class MockQueueDriver {
89
91
  jobId,
90
92
  jobName: message.jobName,
91
93
  });
94
+ let payload = message.payload;
95
+ if (job.schema) {
96
+ const result = safeParse(job.schema, payload);
97
+ if (!result.success) {
98
+ throw new InvalidJobPayloadError(job.name, result.issues);
99
+ }
100
+ payload = result.output;
101
+ }
92
102
  await this.runJobHandler({
93
103
  jobId,
94
104
  jobName: message.jobName,
95
105
  logger,
96
- payload: message.payload,
106
+ payload,
97
107
  handler: job.handler,
98
108
  context,
99
109
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mock-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export { type SQSDriverConfig, SQSQueueDriver } from './drivers/sqs-driver.js';
5
5
  export { InvalidJobPayloadError, PayloadTooLargeError, PermanentJobError, RetryExhaustedError, TransientJobError, } from './errors.js';
6
6
  export { createJobRegistry, JobRegistry } from './job-registry.js';
7
7
  export { JobService, type JobServiceConfig, type JobServiceHooks, } from './job-service.js';
8
+ export { createEMFJobMetric, type EMFJobMetricRecord, type EMFMetadata, type EMFMetricUnit, emitJobMetric, type JobExecutionMetricData, type JobExecutionStatus, type JobMetricsConfig, } from './observability/index.js';
8
9
  export { definePeriodicJob } from './periodic-job.js';
9
- export { createSchedulerHandler, type SchedulerConfig } from './scheduler.js';
10
10
  export type { AnyJobDefinition, Duration, EnqueueResult, JobContext, JobDefinition, JobHandler, JobMessage, QueueDriver, RetryConfig, } from './types.js';
11
- export { bootstrapWorker } from './worker.js';
11
+ export { bootstrapWorker, type JobExecution, type WorkerConfig } from './worker.js';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,KAAK,cAAc,GACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,KAAK,cAAc,GACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -5,7 +5,7 @@ export { SQSQueueDriver } from './drivers/sqs-driver.js';
5
5
  export { InvalidJobPayloadError, PayloadTooLargeError, PermanentJobError, RetryExhaustedError, TransientJobError, } from './errors.js';
6
6
  export { createJobRegistry, JobRegistry } from './job-registry.js';
7
7
  export { JobService, } from './job-service.js';
8
+ export { createEMFJobMetric, emitJobMetric, } from './observability/index.js';
8
9
  export { definePeriodicJob } from './periodic-job.js';
9
- export { createSchedulerHandler } from './scheduler.js';
10
10
  export { bootstrapWorker } from './worker.js';
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAEL,0BAA0B,GAE3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAwB,MAAM,gBAAgB,CAAC;AAY9E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAEL,0BAA0B,GAE3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAIlB,aAAa,GAId,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAYtD,OAAO,EAAE,eAAe,EAAwC,MAAM,aAAa,CAAC"}
@@ -7,7 +7,7 @@ export interface JobServiceConfig {
7
7
  }
8
8
  export interface JobServiceHooks {
9
9
  /** Called after a job is successfully enqueued */
10
- onEnqueued?: <TPayload>(job: JobDefinition<TPayload>, payload: TPayload, result: EnqueueResult) => Promise<void> | void;
10
+ onEnqueued?: <TPayload, TOutput = TPayload>(job: JobDefinition<TPayload, TOutput>, payload: TPayload, result: EnqueueResult) => Promise<void> | void;
11
11
  }
12
12
  /**
13
13
  * Service responsible for enqueuing jobs.
@@ -21,20 +21,20 @@ export declare class JobService {
21
21
  /**
22
22
  * Enqueue a job for immediate processing.
23
23
  */
24
- enqueue<TPayload>(job: JobDefinition<TPayload>, payload: TPayload): Promise<EnqueueResult>;
24
+ enqueue<TPayload, TOutput = TPayload>(job: JobDefinition<TPayload, TOutput>, payload: TPayload): Promise<EnqueueResult>;
25
25
  /**
26
26
  * Enqueue a job to run after a delay.
27
27
  */
28
- enqueueIn<TPayload>(job: JobDefinition<TPayload>, payload: TPayload, delay: Duration): Promise<EnqueueResult>;
28
+ enqueueIn<TPayload, TOutput = TPayload>(job: JobDefinition<TPayload, TOutput>, payload: TPayload, delay: Duration): Promise<EnqueueResult>;
29
29
  /**
30
30
  * Enqueue a job to run at a specific time.
31
31
  */
32
- enqueueAt<TPayload>(job: JobDefinition<TPayload>, payload: TPayload, at: Date): Promise<EnqueueResult>;
32
+ enqueueAt<TPayload, TOutput = TPayload>(job: JobDefinition<TPayload, TOutput>, payload: TPayload, at: Date): Promise<EnqueueResult>;
33
33
  /**
34
34
  * Enqueue multiple jobs sequentially.
35
35
  */
36
- enqueueBatch<TPayload>(jobs: Array<{
37
- job: JobDefinition<TPayload>;
36
+ enqueueBatch<TPayload, TOutput = TPayload>(jobs: Array<{
37
+ job: JobDefinition<TPayload, TOutput>;
38
38
  payload: TPayload;
39
39
  }>): Promise<EnqueueResult[]>;
40
40
  private validatePayload;
@@ -1 +1 @@
1
- {"version":3,"file":"job-service.d.ts","sourceRoot":"","sources":["../../src/jobs/job-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,CAAC,QAAQ,EACpB,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,aAAa,KAClB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IANzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,YACmB,MAAM,EAAE,WAAW,EACpC,MAAM,GAAE,gBAAqB,EACZ,KAAK,CAAC,EAAE,eAAe,YAAA,EAIzC;IAED;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAgB/F;IAED;;OAEG;IACG,SAAS,CAAC,QAAQ,EACtB,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,aAAa,CAAC,CAyBxB;IAED;;OAEG;IACG,SAAS,CAAC,QAAQ,EACtB,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,QAAQ,EACjB,EAAE,EAAE,IAAI,GACP,OAAO,CAAC,aAAa,CAAC,CAyBxB;IAED;;OAEG;IACG,YAAY,CAAC,QAAQ,EACzB,IAAI,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC,GAC/D,OAAO,CAAC,aAAa,EAAE,CAAC,CAE1B;IAED,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,QAAQ;CAMjB"}
1
+ {"version":3,"file":"job-service.d.ts","sourceRoot":"","sources":["../../src/jobs/job-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EACxC,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,aAAa,KAClB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IANzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,YACmB,MAAM,EAAE,WAAW,EACpC,MAAM,GAAE,gBAAqB,EACZ,KAAK,CAAC,EAAE,eAAe,YAAA,EAIzC;IAED;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EACxC,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,aAAa,CAAC,CAgBxB;IAED;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAC1C,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,aAAa,CAAC,CA4BxB;IAED;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAC1C,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,QAAQ,EACjB,EAAE,EAAE,IAAI,GACP,OAAO,CAAC,aAAa,CAAC,CA4BxB;IAED;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAC7C,IAAI,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC,GACxE,OAAO,CAAC,aAAa,EAAE,CAAC,CAE1B;IAED,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,QAAQ;CASjB"}
@@ -41,6 +41,9 @@ export class JobService {
41
41
  this.validatePayload(job, payload);
42
42
  this.validatePayloadSize(payload);
43
43
  if (!this.driver.enqueueIn) {
44
+ if (!this.driver.enqueueAt) {
45
+ throw new Error(`Queue driver "${this.driver.name}" does not support delayed jobs`);
46
+ }
44
47
  const seconds = durationToSeconds(delay);
45
48
  return this.enqueueAt(job, payload, new Date(Date.now() + seconds * 1000));
46
49
  }
@@ -63,6 +66,9 @@ export class JobService {
63
66
  this.validatePayload(job, payload);
64
67
  this.validatePayloadSize(payload);
65
68
  if (!this.driver.enqueueAt) {
69
+ if (!this.driver.enqueueIn) {
70
+ throw new Error(`Queue driver "${this.driver.name}" does not support delayed jobs`);
71
+ }
66
72
  const delaySeconds = Math.max(0, Math.floor((at.getTime() - Date.now()) / 1000));
67
73
  return this.enqueueIn(job, payload, delaySeconds);
68
74
  }
@@ -85,6 +91,8 @@ export class JobService {
85
91
  return Promise.all(jobs.map(({ job, payload }) => this.enqueue(job, payload)));
86
92
  }
87
93
  validatePayload(job, payload) {
94
+ // Validate input here, but transport the original input. The worker parses it
95
+ // independently so transforms are never applied to already transformed output.
88
96
  if (job.schema) {
89
97
  const result = safeParse(job.schema, payload);
90
98
  if (!result.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"job-service.js","sourceRoot":"","sources":["../../src/jobs/job-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-service.js","sourceRoot":"","sources":["../../src/jobs/job-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQ3E,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ;AAkBtD;;GAEG;AACH,MAAM,OAAO,UAAU;IAKF,MAAM;IAEN,KAAK;IANP,YAAY,CAAS;IACrB,eAAe,CAAS;IAEzC,YACmB,MAAmB,EACpC,MAAM,GAAqB,EAAE,EACZ,KAAuB;sBAFvB,MAAM;qBAEN,KAAK;QAEtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC;QAC5E,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,yBAAyB,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,GAAqC,EACrC,OAAiB;QAEjB,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,OAAO;YACP,KAAK;YACL,KAAK;YACL,KAAK,EAAE,GAAuB;SAC/B,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,GAAqC,EACrC,OAAiB,EACjB,KAAe;QAEf,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC;YACE,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,OAAO;YACP,KAAK;YACL,KAAK;YACL,KAAK,EAAE,GAAuB;SAC/B,EACD,KAAK,CACN,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,GAAqC,EACrC,OAAiB,EACjB,EAAQ;QAER,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACjF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC;YACE,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,OAAO;YACP,KAAK;YACL,KAAK;YACL,KAAK,EAAE,GAAuB;SAC/B,EACD,EAAE,CACH,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,IAAyE;QAEzE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAEO,eAAe,CACrB,GAAqC,EACrC,OAAiB;QAEjB,8EAA8E;QAC9E,+EAA+E;QAC/E,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAAgB;QAC1C,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,QAAQ,CACd,GAAqC,EACrC,OAAiB;QAEjB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -1,24 +1,14 @@
1
1
  import type { EMFJobMetricRecord, JobExecutionMetricData, JobMetricsConfig } from './types.js';
2
2
  /**
3
- * Build a structured AWS CloudWatch Embedded Metric Format (EMF) record for a background job.
4
- *
5
- * Conforms to the AWS CloudWatch EMF specification:
3
+ * Build a CloudWatch EMF document without an SDK dependency or network request.
4
+ * Each attempt contributes one sample; identifiers and status remain searchable log fields.
6
5
  * https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html
7
- *
8
- * @param data - Execution metrics for the completed or failed job.
9
- * @param config - Optional configuration for namespace, dimensions, etc.
10
- * @returns An object adhering to the EMF JSON schema.
11
6
  */
12
7
  export declare function createEMFJobMetric(data: JobExecutionMetricData, config?: JobMetricsConfig): EMFJobMetricRecord;
13
8
  /**
14
- * Emit an EMF metric to stdout or a configured sink.
15
- *
16
- * When emitted to stdout within an AWS Lambda environment, AWS CloudWatch Logs automatically
17
- * extracts these metrics into CloudWatch Metrics with zero API overhead and zero latency.
18
- *
19
- * @param data - Execution metrics for the job.
20
- * @param config - Optional configuration for namespace, dimensions, or custom sink.
21
- * @returns The generated record or null if metrics are disabled.
9
+ * Emit one raw EMF JSON document. Lambda's console wrappers and application loggers can
10
+ * nest or prefix JSON and prevent metric extraction, so the default sink writes to stdout.
11
+ * Direct calls may throw; bootstrapWorker isolates telemetry failures from job processing.
22
12
  */
23
13
  export declare function emitJobMetric(data: JobExecutionMetricData, config?: JobMetricsConfig): EMFJobMetricRecord | null;
24
14
  //# sourceMappingURL=emf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emf.d.ts","sourceRoot":"","sources":["../../../src/jobs/observability/emf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/F;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,kBAAkB,CAyEpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,kBAAkB,GAAG,IAAI,CAgB3B"}
1
+ {"version":3,"file":"emf.d.ts","sourceRoot":"","sources":["../../../src/jobs/observability/emf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiB/F;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,kBAAkB,CA6DpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,kBAAkB,GAAG,IAAI,CAS3B"}
@@ -1,100 +1,120 @@
1
- import { isTest } from '../../utils/environment.js';
1
+ import { isLambda, isTest } from '../../utils/environment.js';
2
+ const RESERVED_FIELDS = new Set([
3
+ '_aws',
4
+ 'JobName',
5
+ 'Status',
6
+ 'JobId',
7
+ 'AttemptNumber',
8
+ 'JobCount',
9
+ 'JobDuration',
10
+ 'JobErrorCount',
11
+ 'RetryCount',
12
+ 'DeadLetterCount',
13
+ 'QueueWaitTime',
14
+ 'FunctionName',
15
+ ]);
2
16
  /**
3
- * Build a structured AWS CloudWatch Embedded Metric Format (EMF) record for a background job.
4
- *
5
- * Conforms to the AWS CloudWatch EMF specification:
17
+ * Build a CloudWatch EMF document without an SDK dependency or network request.
18
+ * Each attempt contributes one sample; identifiers and status remain searchable log fields.
6
19
  * https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html
7
- *
8
- * @param data - Execution metrics for the completed or failed job.
9
- * @param config - Optional configuration for namespace, dimensions, etc.
10
- * @returns An object adhering to the EMF JSON schema.
11
20
  */
12
21
  export function createEMFJobMetric(data, config) {
13
22
  const namespace = config?.namespace ?? 'Glasswork/Jobs';
14
- const customDimensions = {
15
- ...(config?.dimensions ?? {}),
16
- ...(data.customDimensions ?? {}),
17
- };
18
- const customDimensionKeys = Object.keys(customDimensions);
19
- // Standard dimension sets:
20
- // 1. [JobName]
21
- // 2. [JobName, Status]
22
- // 3. [Status]
23
- // If custom dimensions exist, they are appended to each dimension set for granular filtering.
24
- const baseDimensionSets = [['JobName'], ['JobName', 'Status'], ['Status']];
25
- const dimensionSets = customDimensionKeys.length > 0
26
- ? baseDimensionSets.map((set) => [...set, ...customDimensionKeys])
27
- : baseDimensionSets;
23
+ const dimensions = { ...config?.dimensions };
24
+ validateDimensions(dimensions);
25
+ validateMetricData(data);
26
+ if (!isMetricString(namespace, 255) ||
27
+ namespace.startsWith(':') ||
28
+ namespace.startsWith('AWS/')) {
29
+ throw new Error('Job metrics namespace must contain 1-255 characters outside AWS/');
30
+ }
31
+ const functionName = process.env.AWS_LAMBDA_FUNCTION_NAME;
32
+ if (functionName && !isMetricString(functionName, 1024)) {
33
+ throw new Error('Job metric function names must contain 1-1024 printable ASCII characters');
34
+ }
35
+ const dimensionValues = functionName ? { ...dimensions, FunctionName: functionName } : dimensions;
36
+ const dimensionKeys = Object.keys(dimensionValues);
37
+ if (dimensionKeys.length + 1 > 30) {
38
+ throw new Error('Job metrics support at most 30 dimensions including FunctionName and JobName');
39
+ }
28
40
  const queueWaitTime = data.enqueuedAt
29
- ? Math.max(0, data.startedAt.getTime() - data.enqueuedAt.getTime())
41
+ ? data.startedAt.getTime() - data.enqueuedAt.getTime()
30
42
  : undefined;
31
- const retryCount = Math.max(0, data.attemptNumber - 1);
32
- const isError = data.status !== 'success';
33
- const metrics = [
34
- { Name: 'JobCount', Unit: 'Count' },
35
- { Name: 'JobDuration', Unit: 'Milliseconds' },
36
- { Name: 'JobErrorCount', Unit: 'Count' },
37
- { Name: 'RetryCount', Unit: 'Count' },
38
- ];
39
- if (queueWaitTime !== undefined) {
40
- metrics.push({ Name: 'QueueWaitTime', Unit: 'Milliseconds' });
41
- }
42
- const record = {
43
+ const metric = {
43
44
  _aws: {
44
45
  Timestamp: Date.now(),
45
46
  CloudWatchMetrics: [
46
47
  {
47
48
  Namespace: namespace,
48
- Dimensions: dimensionSets,
49
- Metrics: metrics,
49
+ Dimensions: [dimensionKeys, [...dimensionKeys, 'JobName']],
50
+ Metrics: [
51
+ { Name: 'JobCount', Unit: 'Count' },
52
+ { Name: 'JobDuration', Unit: 'Milliseconds' },
53
+ { Name: 'JobErrorCount', Unit: 'Count' },
54
+ { Name: 'RetryCount', Unit: 'Count' },
55
+ { Name: 'DeadLetterCount', Unit: 'Count' },
56
+ ],
50
57
  },
51
58
  ],
52
59
  },
60
+ ...dimensionValues,
53
61
  JobName: data.jobName,
54
62
  Status: data.status,
55
63
  JobId: data.jobId,
56
64
  AttemptNumber: data.attemptNumber,
57
65
  JobCount: 1,
58
66
  JobDuration: data.durationMs,
59
- JobErrorCount: isError ? 1 : 0,
60
- RetryCount: retryCount,
61
- ...customDimensions,
67
+ JobErrorCount: data.status === 'success' ? 0 : 1,
68
+ RetryCount: data.attemptNumber > 1 ? 1 : 0,
69
+ DeadLetterCount: data.status === 'dead_letter' ? 1 : 0,
62
70
  };
63
- if (queueWaitTime !== undefined) {
64
- record.QueueWaitTime = queueWaitTime;
65
- }
66
- if (data.error) {
67
- record.ErrorName = data.error.name || 'Error';
68
- record.ErrorMessage = data.error.message;
69
- if (data.error.stack) {
70
- record.ErrorStack = data.error.stack;
71
- }
71
+ // Invalid or absent producer timestamps must not create null/NaN metric targets.
72
+ if (queueWaitTime !== undefined && Number.isFinite(queueWaitTime)) {
73
+ metric.QueueWaitTime = Math.max(0, queueWaitTime);
74
+ metric._aws.CloudWatchMetrics[0].Metrics.push({ Name: 'QueueWaitTime', Unit: 'Milliseconds' });
72
75
  }
73
- return record;
76
+ return metric;
74
77
  }
75
78
  /**
76
- * Emit an EMF metric to stdout or a configured sink.
77
- *
78
- * When emitted to stdout within an AWS Lambda environment, AWS CloudWatch Logs automatically
79
- * extracts these metrics into CloudWatch Metrics with zero API overhead and zero latency.
80
- *
81
- * @param data - Execution metrics for the job.
82
- * @param config - Optional configuration for namespace, dimensions, or custom sink.
83
- * @returns The generated record or null if metrics are disabled.
79
+ * Emit one raw EMF JSON document. Lambda's console wrappers and application loggers can
80
+ * nest or prefix JSON and prevent metric extraction, so the default sink writes to stdout.
81
+ * Direct calls may throw; bootstrapWorker isolates telemetry failures from job processing.
84
82
  */
85
83
  export function emitJobMetric(data, config) {
86
- const isEnabled = config?.enabled ?? (config?.sink !== undefined || !isTest());
87
- if (!isEnabled) {
84
+ const enabled = config?.enabled ?? (config?.sink !== undefined || (isLambda() && !isTest()));
85
+ if (!enabled)
88
86
  return null;
89
- }
90
- const record = createEMFJobMetric(data, config);
91
- const json = JSON.stringify(record);
92
- if (config?.sink) {
87
+ const metric = createEMFJobMetric(data, config);
88
+ const json = JSON.stringify(metric);
89
+ if (config?.sink)
93
90
  config.sink(json);
91
+ else
92
+ process.stdout.write(`${json}\n`);
93
+ return metric;
94
+ }
95
+ function validateMetricData(data) {
96
+ if (!isMetricString(data.jobName, 1024)) {
97
+ throw new Error('Job metric names must contain 1-1024 printable ASCII characters');
98
+ }
99
+ if (!Number.isFinite(data.durationMs) || data.durationMs < 0) {
100
+ throw new Error('Job duration must be a finite, non-negative number');
94
101
  }
95
- else {
96
- console.log(json);
102
+ if (!Number.isSafeInteger(data.attemptNumber) || data.attemptNumber < 1) {
103
+ throw new Error('Job attempt number must be a positive safe integer');
97
104
  }
98
- return record;
105
+ }
106
+ function validateDimensions(dimensions) {
107
+ for (const [name, value] of Object.entries(dimensions)) {
108
+ if (!isMetricString(name, 250) || name.startsWith(':') || RESERVED_FIELDS.has(name)) {
109
+ throw new Error('Job metric dimensions must have unique, non-reserved names of 1-250 characters');
110
+ }
111
+ if (!isMetricString(value, 1024)) {
112
+ throw new Error('Job metric dimension values must contain 1-1024 characters');
113
+ }
114
+ }
115
+ }
116
+ /** CloudWatch identities allow printable ASCII, with at least one non-whitespace character. */
117
+ function isMetricString(value, maxLength) {
118
+ return value.trim().length > 0 && value.length <= maxLength && /^[\x20-\x7e]+$/.test(value);
99
119
  }
100
120
  //# sourceMappingURL=emf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emf.js","sourceRoot":"","sources":["../../../src/jobs/observability/emf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emf.js","sourceRoot":"","sources":["../../../src/jobs/observability/emf.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- export { createJobsObservabilityClient, type JobsObservabilityClient, } from './client.js';
2
- export { generateJobsDashboard, getJobsInsightsQueries, } from './dashboard.js';
3
- export { createEMFJobMetric, emitJobMetric, } from './emf.js';
4
- export type { CloudWatchDashboardDefinition, EMFJobMetricRecord, EMFMetadata, EMFMetricUnit, FailedJobDTO, GenerateJobsDashboardOptions, GetFailedJobsOptions, GetJobSummaryOptions, GetJobsInsightsQueriesOptions, JobExecutionMetricData, JobExecutionStatus, JobMetricsConfig, JobStatsSummaryDTO, JobsInsightsQueries, JobsObservabilityClientOptions, JobTypeStatsDTO, } from './types.js';
1
+ export { createEMFJobMetric, emitJobMetric } from './emf.js';
2
+ export type { EMFJobMetricRecord, EMFMetadata, EMFMetricUnit, JobExecutionMetricData, JobExecutionStatus, JobMetricsConfig, } from './types.js';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jobs/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,6BAA6B,EAC7B,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,8BAA8B,EAC9B,eAAe,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jobs/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -1,4 +1,2 @@
1
- export { createJobsObservabilityClient, } from './client.js';
2
- export { generateJobsDashboard, getJobsInsightsQueries, } from './dashboard.js';
3
- export { createEMFJobMetric, emitJobMetric, } from './emf.js';
1
+ export { createEMFJobMetric, emitJobMetric } from './emf.js';
4
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jobs/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAE9B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jobs/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}