glasswork 1.4.1 → 1.6.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.
- package/CHANGELOG.md +75 -1
- package/README.md +6 -2
- package/dist/audit/audit-logger.d.ts +6 -1
- package/dist/audit/audit-logger.d.ts.map +1 -1
- package/dist/audit/audit-logger.js +6 -1
- package/dist/audit/audit-logger.js.map +1 -1
- package/dist/auth/assert.d.ts +4 -0
- package/dist/auth/assert.d.ts.map +1 -1
- package/dist/auth/assert.js +7 -3
- package/dist/auth/assert.js.map +1 -1
- package/dist/auth/better-auth-provider.js +13 -4
- package/dist/auth/better-auth-provider.js.map +1 -1
- package/dist/auth/errors.d.ts +17 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +23 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/index.d.ts +2 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/middleware.d.ts +13 -0
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +19 -8
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/types.d.ts +4 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/config/providers.d.ts.map +1 -1
- package/dist/config/providers.js +5 -4
- package/dist/config/providers.js.map +1 -1
- package/dist/core/bootstrap.d.ts +2 -2
- package/dist/core/bootstrap.d.ts.map +1 -1
- package/dist/core/bootstrap.js +162 -83
- package/dist/core/bootstrap.js.map +1 -1
- package/dist/core/contract.d.ts +9 -2
- package/dist/core/contract.d.ts.map +1 -1
- package/dist/core/contract.js +2 -1
- package/dist/core/contract.js.map +1 -1
- package/dist/core/errors.d.ts +16 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +31 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/glasswork-config.d.ts +42 -0
- package/dist/core/glasswork-config.d.ts.map +1 -0
- package/dist/core/glasswork-config.js +2 -0
- package/dist/core/glasswork-config.js.map +1 -0
- package/dist/core/index.d.ts +7 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/job-services.d.ts +16 -0
- package/dist/core/job-services.d.ts.map +1 -0
- package/dist/core/job-services.js +19 -0
- package/dist/core/job-services.js.map +1 -0
- package/dist/core/lifecycle.d.ts +30 -2
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +100 -13
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/module-graph.d.ts +7 -1
- package/dist/core/module-graph.d.ts.map +1 -1
- package/dist/core/module-graph.js +90 -21
- package/dist/core/module-graph.js.map +1 -1
- package/dist/core/module-inspection.d.ts +44 -0
- package/dist/core/module-inspection.d.ts.map +1 -0
- package/dist/core/module-inspection.js +114 -0
- package/dist/core/module-inspection.js.map +1 -0
- package/dist/core/module-runtime.d.ts +22 -0
- package/dist/core/module-runtime.d.ts.map +1 -0
- package/dist/core/module-runtime.js +252 -0
- package/dist/core/module-runtime.js.map +1 -0
- package/dist/core/module.d.ts +5 -1
- package/dist/core/module.d.ts.map +1 -1
- package/dist/core/module.js +15 -3
- package/dist/core/module.js.map +1 -1
- package/dist/core/request-scope.d.ts +1 -1
- package/dist/core/request-scope.d.ts.map +1 -1
- package/dist/core/request-scope.js +10 -8
- package/dist/core/request-scope.js.map +1 -1
- package/dist/core/types.d.ts +106 -10
- package/dist/core/types.d.ts.map +1 -1
- package/dist/email/compiler/compiler.d.ts.map +1 -1
- package/dist/email/compiler/compiler.js +24 -13
- package/dist/email/compiler/compiler.js.map +1 -1
- package/dist/email/email-service.d.ts +0 -4
- package/dist/email/email-service.d.ts.map +1 -1
- package/dist/email/email-service.js +2 -29
- package/dist/email/email-service.js.map +1 -1
- package/dist/email/html-to-text.d.ts +14 -0
- package/dist/email/html-to-text.d.ts.map +1 -0
- package/dist/email/html-to-text.js +47 -0
- package/dist/email/html-to-text.js.map +1 -0
- package/dist/email/index.d.ts +1 -0
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +1 -0
- package/dist/email/index.js.map +1 -1
- package/dist/email/ses.d.ts +7 -0
- package/dist/email/ses.d.ts.map +1 -0
- package/dist/email/ses.js +6 -0
- package/dist/email/ses.js.map +1 -0
- package/dist/email/smtp.d.ts +7 -0
- package/dist/email/smtp.d.ts.map +1 -0
- package/dist/email/smtp.js +6 -0
- package/dist/email/smtp.js.map +1 -0
- package/dist/email/transports/ses-transport.d.ts.map +1 -1
- package/dist/email/transports/ses-transport.js +6 -4
- package/dist/email/transports/ses-transport.js.map +1 -1
- package/dist/email/transports/smtp-transport.d.ts +40 -0
- package/dist/email/transports/smtp-transport.d.ts.map +1 -0
- package/dist/email/transports/smtp-transport.js +67 -0
- package/dist/email/transports/smtp-transport.js.map +1 -0
- package/dist/http/error-handler.d.ts +7 -1
- package/dist/http/error-handler.d.ts.map +1 -1
- package/dist/http/error-handler.js +18 -6
- package/dist/http/error-handler.js.map +1 -1
- package/dist/http/error-response.dto.d.ts +6 -0
- package/dist/http/error-response.dto.d.ts.map +1 -1
- package/dist/http/error-response.dto.js +6 -0
- package/dist/http/error-response.dto.js.map +1 -1
- package/dist/http/errors.d.ts +12 -0
- package/dist/http/errors.d.ts.map +1 -1
- package/dist/http/errors.js +35 -23
- package/dist/http/errors.js.map +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/index.js.map +1 -1
- package/dist/http/route-authorization.d.ts.map +1 -1
- package/dist/http/route-authorization.js +3 -3
- package/dist/http/route-authorization.js.map +1 -1
- package/dist/http/route-helpers.d.ts +2 -1
- package/dist/http/route-helpers.d.ts.map +1 -1
- package/dist/http/route-helpers.js +29 -2
- package/dist/http/route-helpers.js.map +1 -1
- package/dist/http/route-openapi-context.d.ts +15 -1
- package/dist/http/route-openapi-context.d.ts.map +1 -1
- package/dist/http/route-openapi-context.js.map +1 -1
- package/dist/http/route-response.d.ts +6 -2
- package/dist/http/route-response.d.ts.map +1 -1
- package/dist/http/route-response.js +36 -16
- package/dist/http/route-response.js.map +1 -1
- package/dist/http/route-types.d.ts +12 -4
- package/dist/http/route-types.d.ts.map +1 -1
- package/dist/http/route-types.js.map +1 -1
- package/dist/http/route-validation.d.ts.map +1 -1
- package/dist/http/route-validation.js +21 -1
- package/dist/http/route-validation.js.map +1 -1
- package/dist/jobs/drivers/eventbridge-scheduler-driver.d.ts +1 -0
- package/dist/jobs/drivers/eventbridge-scheduler-driver.d.ts.map +1 -1
- package/dist/jobs/drivers/eventbridge-scheduler-driver.js +12 -2
- package/dist/jobs/drivers/eventbridge-scheduler-driver.js.map +1 -1
- package/dist/jobs/drivers/mock-driver.d.ts +4 -0
- package/dist/jobs/drivers/mock-driver.d.ts.map +1 -1
- package/dist/jobs/drivers/mock-driver.js +10 -3
- package/dist/jobs/drivers/mock-driver.js.map +1 -1
- package/dist/jobs/drivers/sqs-driver.d.ts +1 -1
- package/dist/jobs/drivers/sqs-driver.d.ts.map +1 -1
- package/dist/jobs/drivers/sqs-driver.js +8 -2
- package/dist/jobs/drivers/sqs-driver.js.map +1 -1
- package/dist/jobs/errors.d.ts +14 -1
- package/dist/jobs/errors.d.ts.map +1 -1
- package/dist/jobs/errors.js +19 -2
- package/dist/jobs/errors.js.map +1 -1
- package/dist/jobs/index.d.ts +3 -3
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/job-service.d.ts +46 -7
- package/dist/jobs/job-service.d.ts.map +1 -1
- package/dist/jobs/job-service.js +63 -9
- package/dist/jobs/job-service.js.map +1 -1
- package/dist/jobs/scheduler.d.ts +6 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +6 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/sqs.d.ts +7 -0
- package/dist/jobs/sqs.d.ts.map +1 -0
- package/dist/jobs/sqs.js +7 -0
- package/dist/jobs/sqs.js.map +1 -0
- package/dist/jobs/types.d.ts +6 -1
- package/dist/jobs/types.d.ts.map +1 -1
- package/dist/jobs/utils.d.ts +6 -0
- package/dist/jobs/utils.d.ts.map +1 -1
- package/dist/jobs/utils.js +8 -0
- package/dist/jobs/utils.js.map +1 -1
- package/dist/jobs/worker.d.ts.map +1 -1
- package/dist/jobs/worker.js +28 -23
- package/dist/jobs/worker.js.map +1 -1
- package/dist/middleware/rate-limit.d.ts.map +1 -1
- package/dist/middleware/rate-limit.js +5 -4
- package/dist/middleware/rate-limit.js.map +1 -1
- package/dist/observability/exception-tracking.d.ts +23 -0
- package/dist/observability/exception-tracking.d.ts.map +1 -1
- package/dist/observability/exception-tracking.js +101 -6
- package/dist/observability/exception-tracking.js.map +1 -1
- package/dist/observability/index.d.ts +1 -1
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +1 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/sanitizers.d.ts.map +1 -1
- package/dist/observability/sanitizers.js +2 -0
- package/dist/observability/sanitizers.js.map +1 -1
- package/dist/openapi/drift.d.ts +17 -2
- package/dist/openapi/drift.d.ts.map +1 -1
- package/dist/openapi/drift.js +79 -5
- package/dist/openapi/drift.js.map +1 -1
- package/dist/openapi/openapi.d.ts.map +1 -1
- package/dist/openapi/openapi.js +2 -1
- package/dist/openapi/openapi.js.map +1 -1
- package/dist/utils/environment.d.ts +10 -2
- package/dist/utils/environment.d.ts.map +1 -1
- package/dist/utils/environment.js +20 -3
- package/dist/utils/environment.js.map +1 -1
- package/dist/utils/module-interop.d.ts +9 -0
- package/dist/utils/module-interop.d.ts.map +1 -0
- package/dist/utils/module-interop.js +16 -0
- package/dist/utils/module-interop.js.map +1 -0
- package/dist/utils/optional-dependency.d.ts +6 -0
- package/dist/utils/optional-dependency.d.ts.map +1 -0
- package/dist/utils/optional-dependency.js +16 -0
- package/dist/utils/optional-dependency.js.map +1 -0
- package/dist/utils/serialize-prisma-types.d.ts +51 -15
- package/dist/utils/serialize-prisma-types.d.ts.map +1 -1
- package/dist/utils/serialize-prisma-types.js +47 -16
- package/dist/utils/serialize-prisma-types.js.map +1 -1
- package/package.json +56 -12
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { optionalDependency } from '../../utils/optional-dependency.js';
|
|
2
2
|
import { MAX_SQS_DELAY_SECONDS } from '../schedule-constants.js';
|
|
3
3
|
import { durationToSeconds, generateJobId } from '../utils.js';
|
|
4
4
|
import { EventBridgeSchedulerDriver, } from './eventbridge-scheduler-driver.js';
|
|
5
|
+
const loadSqs = optionalDependency('@aws-sdk/client-sqs', 'SQSQueueDriver', () => import('@aws-sdk/client-sqs'));
|
|
5
6
|
/**
|
|
6
7
|
* AWS SQS queue driver with EventBridge Scheduler support for long delays.
|
|
7
8
|
*
|
|
@@ -35,7 +36,10 @@ export class SQSQueueDriver {
|
|
|
35
36
|
throw new Error('SQSQueueDriver has been disposed');
|
|
36
37
|
}
|
|
37
38
|
if (!this.client) {
|
|
38
|
-
|
|
39
|
+
const { SQSClient } = await loadSqs();
|
|
40
|
+
if (this.disposed)
|
|
41
|
+
throw new Error('SQSQueueDriver has been disposed');
|
|
42
|
+
this.client ??= new SQSClient({
|
|
39
43
|
region: this.config.region,
|
|
40
44
|
...(this.config.endpoint && { endpoint: this.config.endpoint }),
|
|
41
45
|
});
|
|
@@ -47,6 +51,7 @@ export class SQSQueueDriver {
|
|
|
47
51
|
const queueUrl = this.getQueueUrl(message.queue);
|
|
48
52
|
const jobId = message.jobId ?? generateJobId();
|
|
49
53
|
const isFifo = queueUrl.endsWith('.fifo');
|
|
54
|
+
const { SendMessageCommand } = await loadSqs();
|
|
50
55
|
const command = new SendMessageCommand({
|
|
51
56
|
QueueUrl: queueUrl,
|
|
52
57
|
MessageBody: JSON.stringify({
|
|
@@ -130,6 +135,7 @@ export class SQSQueueDriver {
|
|
|
130
135
|
const queueUrl = this.getQueueUrl(message.queue);
|
|
131
136
|
const jobId = message.jobId ?? generateJobId();
|
|
132
137
|
const isFifo = queueUrl.endsWith('.fifo');
|
|
138
|
+
const { SendMessageCommand } = await loadSqs();
|
|
133
139
|
const command = new SendMessageCommand({
|
|
134
140
|
QueueUrl: queueUrl,
|
|
135
141
|
MessageBody: JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqs-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/sqs-driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqs-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/sqs-driver.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/errors.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseIssue } from 'valibot';
|
|
2
|
+
import type { EnqueueResult } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Indicates a job should not be retried.
|
|
4
5
|
*/
|
|
@@ -13,13 +14,25 @@ export declare class PayloadTooLargeError extends Error {
|
|
|
13
14
|
readonly maxSize: number;
|
|
14
15
|
constructor(actualSize: number, maxSize: number);
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Thrown when the queue accepted a job but the `onEnqueued` hook failed afterwards.
|
|
19
|
+
*
|
|
20
|
+
* The job is enqueued, so do not enqueue it again: `result` holds the queue's answer and
|
|
21
|
+
* `cause` the hook's error.
|
|
22
|
+
*/
|
|
23
|
+
export declare class EnqueueHookError extends Error {
|
|
24
|
+
readonly accepted = true;
|
|
25
|
+
readonly jobName: string;
|
|
26
|
+
readonly result: EnqueueResult;
|
|
27
|
+
constructor(jobName: string, result: EnqueueResult, cause: unknown);
|
|
28
|
+
}
|
|
16
29
|
/**
|
|
17
30
|
* Thrown when payload validation fails against the job schema.
|
|
18
31
|
*/
|
|
19
32
|
export declare class InvalidJobPayloadError extends Error {
|
|
20
33
|
readonly jobName: string;
|
|
21
34
|
readonly issues: BaseIssue<unknown>[];
|
|
22
|
-
constructor(jobName: string, issues: BaseIssue<unknown>[]);
|
|
35
|
+
constructor(jobName: string, issues: BaseIssue<unknown>[], detail?: string);
|
|
23
36
|
}
|
|
24
37
|
/**
|
|
25
38
|
* Indicates a transient failure that should be retried.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/jobs/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/jobs/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAS9C;CACF;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,QAAQ;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAUjE;CACF;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAEtC,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAKzE;CACF;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,YAAY,EAAE,QAAQ,CAAC;IAEpD,YAAY,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,YAAY,EAAE,QAAQ,EAItE;CACF;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,YAAY,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAOpF;CACF"}
|
package/dist/jobs/errors.js
CHANGED
|
@@ -20,14 +20,31 @@ export class PayloadTooLargeError extends Error {
|
|
|
20
20
|
this.maxSize = maxSize;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Thrown when the queue accepted a job but the `onEnqueued` hook failed afterwards.
|
|
25
|
+
*
|
|
26
|
+
* The job is enqueued, so do not enqueue it again: `result` holds the queue's answer and
|
|
27
|
+
* `cause` the hook's error.
|
|
28
|
+
*/
|
|
29
|
+
export class EnqueueHookError extends Error {
|
|
30
|
+
accepted = true;
|
|
31
|
+
jobName;
|
|
32
|
+
result;
|
|
33
|
+
constructor(jobName, result, cause) {
|
|
34
|
+
super(`onEnqueued hook failed after job "${jobName}" was enqueued: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
|
|
35
|
+
this.name = 'EnqueueHookError';
|
|
36
|
+
this.jobName = jobName;
|
|
37
|
+
this.result = result;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
23
40
|
/**
|
|
24
41
|
* Thrown when payload validation fails against the job schema.
|
|
25
42
|
*/
|
|
26
43
|
export class InvalidJobPayloadError extends Error {
|
|
27
44
|
jobName;
|
|
28
45
|
issues;
|
|
29
|
-
constructor(jobName, issues) {
|
|
30
|
-
super(`Invalid payload for job "${jobName}"`);
|
|
46
|
+
constructor(jobName, issues, detail) {
|
|
47
|
+
super(`Invalid payload for job "${jobName}"${detail ? `: ${detail}` : ''}`);
|
|
31
48
|
this.name = 'InvalidJobPayloadError';
|
|
32
49
|
this.jobName = jobName;
|
|
33
50
|
this.issues = issues;
|
package/dist/jobs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/jobs/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/jobs/errors.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,UAAU,CAAS;IACnB,OAAO,CAAS;IAEzB,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CACH,qBAAqB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,0BAA0B,IAAI,CAAC,KAAK,CACpF,OAAO,GAAG,IAAI,CACf,sEAAsE,CACxE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,QAAQ,GAAG,IAAI,CAAC;IAChB,OAAO,CAAS;IAChB,MAAM,CAAgB;IAE/B,YAAY,OAAe,EAAE,MAAqB,EAAE,KAAc;QAChE,KAAK,CACH,qCAAqC,OAAO,mBAC1C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,EACF,EAAE,KAAK,EAAE,CACV,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,OAAO,CAAS;IAChB,MAAM,CAAuB;IAEtC,YAAY,OAAe,EAAE,MAA4B,EAAE,MAAe;QACxE,KAAK,CAAC,4BAA4B,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,UAAU,CAAiC;IAEpD,YAAY,OAAe,EAAE,UAA0C;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,OAAO,CAAS;IAChB,aAAa,CAAS;IACtB,WAAW,CAAS;IACpB,KAAK,CAAQ;IAEtB,YAAY,OAAe,EAAE,aAAqB,EAAE,WAAmB,EAAE,KAAY;QACnF,KAAK,CAAC,QAAQ,OAAO,eAAe,WAAW,kBAAkB,aAAa,WAAW,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
package/dist/jobs/index.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ export { defineJob } from './define-job.js';
|
|
|
2
2
|
export { type EventBridgeSchedulerConfig, EventBridgeSchedulerDriver, type ScheduleResult, } from './drivers/eventbridge-scheduler-driver.js';
|
|
3
3
|
export { type MockEnqueuedJob, MockQueueDriver, type MockQueueDriverConfig, } from './drivers/mock-driver.js';
|
|
4
4
|
export { type SQSDriverConfig, SQSQueueDriver } from './drivers/sqs-driver.js';
|
|
5
|
-
export { InvalidJobPayloadError, PayloadTooLargeError, PermanentJobError, RetryExhaustedError, TransientJobError, } from './errors.js';
|
|
5
|
+
export { EnqueueHookError, InvalidJobPayloadError, PayloadTooLargeError, PermanentJobError, RetryExhaustedError, TransientJobError, } from './errors.js';
|
|
6
6
|
export { createJobRegistry, JobRegistry } from './job-registry.js';
|
|
7
|
-
export { JobService, type JobServiceConfig, type JobServiceHooks, } from './job-service.js';
|
|
7
|
+
export { type BatchEnqueueOptions, type BatchEnqueueResult, type BatchJob, JobService, type JobServiceConfig, type JobServiceHooks, } from './job-service.js';
|
|
8
8
|
export { createEMFJobMetric, type EMFJobMetricRecord, type EMFMetadata, type EMFMetricUnit, emitJobMetric, type JobExecutionMetricData, type JobExecutionStatus, type JobMetricsConfig, } from './observability/index.js';
|
|
9
9
|
export { definePeriodicJob } from './periodic-job.js';
|
|
10
|
-
export type { AnyJobDefinition, Duration, EnqueueResult, JobContext, JobDefinition, JobHandler, JobMessage, QueueDriver, RetryConfig, } from './types.js';
|
|
10
|
+
export type { AnyJobDefinition, Duration, EnqueueableJob, EnqueueResult, JobContext, JobDefinition, JobHandler, JobMessage, QueueDriver, RetryConfig, } from './types.js';
|
|
11
11
|
export { bootstrapWorker, type JobExecution, type WorkerConfig } from './worker.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/jobs/index.d.ts.map
CHANGED
|
@@ -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,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"}
|
|
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,gBAAgB,EAChB,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,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,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,cAAc,EACd,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"}
|
package/dist/jobs/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { defineJob } from './define-job.js';
|
|
|
2
2
|
export { EventBridgeSchedulerDriver, } from './drivers/eventbridge-scheduler-driver.js';
|
|
3
3
|
export { MockQueueDriver, } from './drivers/mock-driver.js';
|
|
4
4
|
export { SQSQueueDriver } from './drivers/sqs-driver.js';
|
|
5
|
-
export { InvalidJobPayloadError, PayloadTooLargeError, PermanentJobError, RetryExhaustedError, TransientJobError, } from './errors.js';
|
|
5
|
+
export { EnqueueHookError, 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
8
|
export { createEMFJobMetric, emitJobMetric, } from './observability/index.js';
|
package/dist/jobs/index.js.map
CHANGED
|
@@ -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,
|
|
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,gBAAgB,EAChB,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,EAIL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAIlB,aAAa,GAId,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAatD,OAAO,EAAE,eAAe,EAAwC,MAAM,aAAa,CAAC"}
|
|
@@ -1,13 +1,39 @@
|
|
|
1
|
-
import type { Duration,
|
|
1
|
+
import type { Duration, EnqueueableJob, EnqueueResult, QueueDriver } from './types.js';
|
|
2
2
|
export interface JobServiceConfig {
|
|
3
3
|
/** Default queue name when a job does not specify one */
|
|
4
4
|
defaultQueue?: string;
|
|
5
5
|
/** Override the payload size limit (defaults to 256KB) */
|
|
6
6
|
maxPayloadBytes?: number;
|
|
7
7
|
}
|
|
8
|
+
/** One job in a batch; `key` identifies it in the per-item results. */
|
|
9
|
+
export interface BatchJob<TPayload, TOutput = TPayload> {
|
|
10
|
+
job: EnqueueableJob<TPayload, TOutput>;
|
|
11
|
+
payload: TPayload;
|
|
12
|
+
key?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Outcome of one batch item, in input order. An accepted item whose `onEnqueued` hook failed
|
|
16
|
+
* carries the hook's error in `hookError`; the job itself is enqueued.
|
|
17
|
+
*/
|
|
18
|
+
export type BatchEnqueueResult = {
|
|
19
|
+
index: number;
|
|
20
|
+
key?: string;
|
|
21
|
+
status: 'accepted';
|
|
22
|
+
result: EnqueueResult;
|
|
23
|
+
hookError?: unknown;
|
|
24
|
+
} | {
|
|
25
|
+
index: number;
|
|
26
|
+
key?: string;
|
|
27
|
+
status: 'rejected';
|
|
28
|
+
error: unknown;
|
|
29
|
+
};
|
|
30
|
+
export interface BatchEnqueueOptions {
|
|
31
|
+
/** Maximum number of jobs being enqueued at the same time (default: 10). */
|
|
32
|
+
concurrency?: number;
|
|
33
|
+
}
|
|
8
34
|
export interface JobServiceHooks {
|
|
9
35
|
/** Called after a job is successfully enqueued */
|
|
10
|
-
onEnqueued?: <TPayload, TOutput = TPayload>(job:
|
|
36
|
+
onEnqueued?: <TPayload, TOutput = TPayload>(job: EnqueueableJob<TPayload, TOutput>, payload: TPayload, result: EnqueueResult) => Promise<void> | void;
|
|
11
37
|
}
|
|
12
38
|
/**
|
|
13
39
|
* Service responsible for enqueuing jobs.
|
|
@@ -21,22 +47,35 @@ export declare class JobService {
|
|
|
21
47
|
/**
|
|
22
48
|
* Enqueue a job for immediate processing.
|
|
23
49
|
*/
|
|
24
|
-
enqueue<TPayload, TOutput = TPayload>(job:
|
|
50
|
+
enqueue<TPayload, TOutput = TPayload>(job: EnqueueableJob<TPayload, TOutput>, payload: TPayload): Promise<EnqueueResult>;
|
|
25
51
|
/**
|
|
26
52
|
* Enqueue a job to run after a delay.
|
|
27
53
|
*/
|
|
28
|
-
enqueueIn<TPayload, TOutput = TPayload>(job:
|
|
54
|
+
enqueueIn<TPayload, TOutput = TPayload>(job: EnqueueableJob<TPayload, TOutput>, payload: TPayload, delay: Duration): Promise<EnqueueResult>;
|
|
29
55
|
/**
|
|
30
56
|
* Enqueue a job to run at a specific time.
|
|
31
57
|
*/
|
|
32
|
-
enqueueAt<TPayload, TOutput = TPayload>(job:
|
|
58
|
+
enqueueAt<TPayload, TOutput = TPayload>(job: EnqueueableJob<TPayload, TOutput>, payload: TPayload, at: Date): Promise<EnqueueResult>;
|
|
33
59
|
/**
|
|
34
|
-
* Enqueue multiple jobs
|
|
60
|
+
* Enqueue multiple jobs concurrently, all at once.
|
|
61
|
+
*
|
|
62
|
+
* Rejects with the first failure while the other jobs are still being enqueued, and those
|
|
63
|
+
* can still be accepted afterwards. Use {@link enqueueBatchSettled} to learn which jobs
|
|
64
|
+
* were accepted and to bound concurrency.
|
|
35
65
|
*/
|
|
36
66
|
enqueueBatch<TPayload, TOutput = TPayload>(jobs: Array<{
|
|
37
|
-
job:
|
|
67
|
+
job: EnqueueableJob<TPayload, TOutput>;
|
|
38
68
|
payload: TPayload;
|
|
39
69
|
}>): Promise<EnqueueResult[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Enqueue multiple jobs with bounded concurrency and report the outcome of each one.
|
|
72
|
+
*
|
|
73
|
+
* Never rejects because of a single job: every item gets an `accepted` or `rejected`
|
|
74
|
+
* result in input order, so a caller can retry only the rejected items.
|
|
75
|
+
*/
|
|
76
|
+
enqueueBatchSettled<TPayload, TOutput = TPayload>(jobs: Array<BatchJob<TPayload, TOutput>>, options?: BatchEnqueueOptions): Promise<BatchEnqueueResult[]>;
|
|
77
|
+
/** The job is enqueued once the driver returns; a failing hook must not hide that. */
|
|
78
|
+
private afterEnqueue;
|
|
40
79
|
private validatePayload;
|
|
41
80
|
private validatePayloadSize;
|
|
42
81
|
private getJobId;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"job-service.d.ts","sourceRoot":"","sources":["../../src/jobs/job-service.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/job-service.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { safeParse } from 'valibot';
|
|
2
|
-
import { InvalidJobPayloadError, PayloadTooLargeError } from './errors.js';
|
|
3
|
-
import { calculatePayloadSizeBytes, durationToSeconds } from './utils.js';
|
|
2
|
+
import { EnqueueHookError, InvalidJobPayloadError, PayloadTooLargeError } from './errors.js';
|
|
3
|
+
import { calculatePayloadSizeBytes, durationToSeconds, toWirePayload } from './utils.js';
|
|
4
4
|
const DEFAULT_MAX_PAYLOAD_BYTES = 256 * 1024; // 256KB
|
|
5
|
+
const DEFAULT_BATCH_CONCURRENCY = 10;
|
|
5
6
|
/**
|
|
6
7
|
* Service responsible for enqueuing jobs.
|
|
7
8
|
*/
|
|
@@ -31,8 +32,7 @@ export class JobService {
|
|
|
31
32
|
jobId,
|
|
32
33
|
__job: job,
|
|
33
34
|
});
|
|
34
|
-
|
|
35
|
-
return result;
|
|
35
|
+
return this.afterEnqueue(job, payload, result);
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Enqueue a job to run after a delay.
|
|
@@ -56,8 +56,7 @@ export class JobService {
|
|
|
56
56
|
jobId,
|
|
57
57
|
__job: job,
|
|
58
58
|
}, delay);
|
|
59
|
-
|
|
60
|
-
return result;
|
|
59
|
+
return this.afterEnqueue(job, payload, result);
|
|
61
60
|
}
|
|
62
61
|
/**
|
|
63
62
|
* Enqueue a job to run at a specific time.
|
|
@@ -81,15 +80,64 @@ export class JobService {
|
|
|
81
80
|
jobId,
|
|
82
81
|
__job: job,
|
|
83
82
|
}, at);
|
|
84
|
-
|
|
85
|
-
return result;
|
|
83
|
+
return this.afterEnqueue(job, payload, result);
|
|
86
84
|
}
|
|
87
85
|
/**
|
|
88
|
-
* Enqueue multiple jobs
|
|
86
|
+
* Enqueue multiple jobs concurrently, all at once.
|
|
87
|
+
*
|
|
88
|
+
* Rejects with the first failure while the other jobs are still being enqueued, and those
|
|
89
|
+
* can still be accepted afterwards. Use {@link enqueueBatchSettled} to learn which jobs
|
|
90
|
+
* were accepted and to bound concurrency.
|
|
89
91
|
*/
|
|
90
92
|
async enqueueBatch(jobs) {
|
|
91
93
|
return Promise.all(jobs.map(({ job, payload }) => this.enqueue(job, payload)));
|
|
92
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Enqueue multiple jobs with bounded concurrency and report the outcome of each one.
|
|
97
|
+
*
|
|
98
|
+
* Never rejects because of a single job: every item gets an `accepted` or `rejected`
|
|
99
|
+
* result in input order, so a caller can retry only the rejected items.
|
|
100
|
+
*/
|
|
101
|
+
async enqueueBatchSettled(jobs, options = {}) {
|
|
102
|
+
const concurrency = options.concurrency ?? DEFAULT_BATCH_CONCURRENCY;
|
|
103
|
+
if (!Number.isInteger(concurrency) || concurrency < 1) {
|
|
104
|
+
throw new Error(`Batch concurrency must be a positive integer, got ${concurrency}`);
|
|
105
|
+
}
|
|
106
|
+
const results = new Array(jobs.length);
|
|
107
|
+
let next = 0;
|
|
108
|
+
const enqueueNext = async () => {
|
|
109
|
+
while (next < jobs.length) {
|
|
110
|
+
const index = next++;
|
|
111
|
+
const { job, payload, key } = jobs[index];
|
|
112
|
+
const identity = key === undefined ? { index } : { index, key };
|
|
113
|
+
try {
|
|
114
|
+
results[index] = {
|
|
115
|
+
...identity,
|
|
116
|
+
status: 'accepted',
|
|
117
|
+
result: await this.enqueue(job, payload),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
results[index] =
|
|
122
|
+
error instanceof EnqueueHookError
|
|
123
|
+
? { ...identity, status: 'accepted', result: error.result, hookError: error.cause }
|
|
124
|
+
: { ...identity, status: 'rejected', error };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
await Promise.all(Array.from({ length: Math.min(concurrency, jobs.length) }, enqueueNext));
|
|
129
|
+
return results;
|
|
130
|
+
}
|
|
131
|
+
/** The job is enqueued once the driver returns; a failing hook must not hide that. */
|
|
132
|
+
async afterEnqueue(job, payload, result) {
|
|
133
|
+
try {
|
|
134
|
+
await this.hooks?.onEnqueued?.(job, payload, result);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
throw new EnqueueHookError(job.name, result, error);
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
93
141
|
validatePayload(job, payload) {
|
|
94
142
|
// Validate input here, but transport the original input. The worker parses it
|
|
95
143
|
// independently so transforms are never applied to already transformed output.
|
|
@@ -98,6 +146,12 @@ export class JobService {
|
|
|
98
146
|
if (!result.success) {
|
|
99
147
|
throw new InvalidJobPayloadError(job.name, result.issues);
|
|
100
148
|
}
|
|
149
|
+
// The worker receives the JSON form; reject input it would refuse on every attempt.
|
|
150
|
+
const wire = safeParse(job.schema, toWirePayload(payload));
|
|
151
|
+
if (!wire.success) {
|
|
152
|
+
throw new InvalidJobPayloadError(job.name, wire.issues, 'the payload no longer matches the schema after JSON transport. Send JSON values, ' +
|
|
153
|
+
'for example a date as an ISO string with a transform to Date');
|
|
154
|
+
}
|
|
101
155
|
}
|
|
102
156
|
}
|
|
103
157
|
validatePayloadSize(payload) {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"job-service.js","sourceRoot":"","sources":["../../src/jobs/job-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module glasswork/jobs/scheduler
|
|
3
|
+
* EventBridge Scheduler driver for one-off schedules. Requires `@aws-sdk/client-scheduler`.
|
|
4
|
+
*/
|
|
5
|
+
export { type EventBridgeSchedulerConfig, EventBridgeSchedulerDriver, type ScheduleResult, } from './drivers/eventbridge-scheduler-driver.js';
|
|
6
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/jobs/scheduler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,KAAK,cAAc,GACpB,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module glasswork/jobs/scheduler
|
|
3
|
+
* EventBridge Scheduler driver for one-off schedules. Requires `@aws-sdk/client-scheduler`.
|
|
4
|
+
*/
|
|
5
|
+
export { EventBridgeSchedulerDriver, } from './drivers/eventbridge-scheduler-driver.js';
|
|
6
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/jobs/scheduler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEL,0BAA0B,GAE3B,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module glasswork/jobs/sqs
|
|
3
|
+
* Amazon SQS queue driver. Requires `@aws-sdk/client-sqs`, and `@aws-sdk/client-scheduler`
|
|
4
|
+
* for delays over 15 minutes.
|
|
5
|
+
*/
|
|
6
|
+
export { type SQSDriverConfig, SQSQueueDriver } from './drivers/sqs-driver.js';
|
|
7
|
+
//# sourceMappingURL=sqs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs.d.ts","sourceRoot":"","sources":["../../src/jobs/sqs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/jobs/sqs.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs.js","sourceRoot":"","sources":["../../src/jobs/sqs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/jobs/types.d.ts
CHANGED
|
@@ -123,7 +123,12 @@ export interface JobDefinition<TPayload, TOutput = TPayload, TServices extends o
|
|
|
123
123
|
* });
|
|
124
124
|
* ```
|
|
125
125
|
*/
|
|
126
|
-
export type AnyJobDefinition = JobDefinition<any, any>;
|
|
126
|
+
export type AnyJobDefinition = JobDefinition<any, any, any>;
|
|
127
|
+
/**
|
|
128
|
+
* A job as code that enqueues it sees it: its payload types matter, the services its handler
|
|
129
|
+
* receives do not.
|
|
130
|
+
*/
|
|
131
|
+
export type EnqueueableJob<TPayload, TOutput = TPayload> = JobDefinition<TPayload, TOutput, any>;
|
|
127
132
|
/**
|
|
128
133
|
* Job message sent to a queue.
|
|
129
134
|
*/
|
package/dist/jobs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5E,oDAAoD;IACpD,QAAQ,EAAE,SAAS,CAAC;IACpB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,UAAU,EAAE,IAAI,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACrF,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjF,CAAC,QAAQ,CAAC,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa,CAC5B,QAAQ,EACR,OAAO,GAAG,QAAQ,EAClB,SAAS,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElD,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC;QACnC,oEAAoE;QACpE,MAAM,CAAC,EAAE,QAAQ,CAAC;KACnB,CAAC;IACF,oCAAoC;IACpC,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,0FAA0F;IAC1F,YAAY,CAAC,EAAE;QACb,GAAG,CACD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;KAClB,CAAC,KAAK,CAAC,CAAC;IACT,2EAA2E;IAC3E,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAC5F,CAAC,MAAM,CAAC,CAAC;CACX;AAED;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jobs/types.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/utils.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ import type { Duration } from './types.js';
|
|
|
3
3
|
* Generate a unique job identifier.
|
|
4
4
|
*/
|
|
5
5
|
export declare function generateJobId(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Returns a payload as a worker receives it after JSON transport: dates become strings,
|
|
8
|
+
* undefined properties disappear and undefined array items become null. Throws for values
|
|
9
|
+
* JSON cannot represent, such as BigInt.
|
|
10
|
+
*/
|
|
11
|
+
export declare function toWirePayload<T>(payload: T): unknown;
|
|
6
12
|
/**
|
|
7
13
|
* Calculate the size of a payload once serialized.
|
|
8
14
|
*/
|
package/dist/jobs/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/jobs/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAKtC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKlE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA2B5D"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/jobs/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAKtC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKlE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA2B5D"}
|
package/dist/jobs/utils.js
CHANGED
|
@@ -8,6 +8,14 @@ export function generateJobId() {
|
|
|
8
8
|
}
|
|
9
9
|
return `job-${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns a payload as a worker receives it after JSON transport: dates become strings,
|
|
13
|
+
* undefined properties disappear and undefined array items become null. Throws for values
|
|
14
|
+
* JSON cannot represent, such as BigInt.
|
|
15
|
+
*/
|
|
16
|
+
export function toWirePayload(payload) {
|
|
17
|
+
return JSON.parse(JSON.stringify({ payload })).payload;
|
|
18
|
+
}
|
|
11
19
|
/**
|
|
12
20
|
* Calculate the size of a payload once serialized.
|
|
13
21
|
*/
|
package/dist/jobs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/jobs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC;QACT,KAAK,EAAE;YACL,OAAO,KAAK,CAAC;QACf,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC9B;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,GAAG,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/jobs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAI,OAAU;IACzC,OAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAA2B,CAAC,OAAO,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC;QACT,KAAK,EAAE;YACL,OAAO,KAAK,CAAC;QACf,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC9B;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,GAAG,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/jobs/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAoB,QAAQ,EAAa,MAAM,YAAY,CAAC;AAQnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAS/D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAmB1D,UAAU,WAAW;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7F,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClG;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/jobs/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAoB,QAAQ,EAAa,MAAM,YAAY,CAAC;AAQnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAS/D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAmB1D,UAAU,WAAW;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7F,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClG;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAWD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,WAKzC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QACvE,OAAO;;;;;;GA8DhB"}
|