duron 0.1.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/LICENSE +7 -0
- package/README.md +140 -0
- package/dist/action-job.d.ts +24 -0
- package/dist/action-job.d.ts.map +1 -0
- package/dist/action-job.js +108 -0
- package/dist/action-manager.d.ts +21 -0
- package/dist/action-manager.d.ts.map +1 -0
- package/dist/action-manager.js +78 -0
- package/dist/action.d.ts +129 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +87 -0
- package/dist/adapters/adapter.d.ts +92 -0
- package/dist/adapters/adapter.d.ts.map +1 -0
- package/dist/adapters/adapter.js +424 -0
- package/dist/adapters/postgres/drizzle.config.d.ts +3 -0
- package/dist/adapters/postgres/drizzle.config.d.ts.map +1 -0
- package/dist/adapters/postgres/drizzle.config.js +10 -0
- package/dist/adapters/postgres/pglite.d.ts +13 -0
- package/dist/adapters/postgres/pglite.d.ts.map +1 -0
- package/dist/adapters/postgres/pglite.js +36 -0
- package/dist/adapters/postgres/postgres.d.ts +51 -0
- package/dist/adapters/postgres/postgres.d.ts.map +1 -0
- package/dist/adapters/postgres/postgres.js +867 -0
- package/dist/adapters/postgres/schema.d.ts +581 -0
- package/dist/adapters/postgres/schema.d.ts.map +1 -0
- package/dist/adapters/postgres/schema.default.d.ts +577 -0
- package/dist/adapters/postgres/schema.default.d.ts.map +1 -0
- package/dist/adapters/postgres/schema.default.js +3 -0
- package/dist/adapters/postgres/schema.js +87 -0
- package/dist/adapters/schemas.d.ts +516 -0
- package/dist/adapters/schemas.d.ts.map +1 -0
- package/dist/adapters/schemas.js +184 -0
- package/dist/client.d.ts +85 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +416 -0
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +22 -0
- package/dist/errors.d.ts +43 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +75 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/server.d.ts +1193 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +516 -0
- package/dist/step-manager.d.ts +46 -0
- package/dist/step-manager.d.ts.map +1 -0
- package/dist/step-manager.js +216 -0
- package/dist/utils/checksum.d.ts +2 -0
- package/dist/utils/checksum.d.ts.map +1 -0
- package/dist/utils/checksum.js +6 -0
- package/dist/utils/p-retry.d.ts +19 -0
- package/dist/utils/p-retry.d.ts.map +1 -0
- package/dist/utils/p-retry.js +130 -0
- package/dist/utils/wait-for-abort.d.ts +5 -0
- package/dist/utils/wait-for-abort.d.ts.map +1 -0
- package/dist/utils/wait-for-abort.js +32 -0
- package/migrations/postgres/0000_lethal_speed_demon.sql +64 -0
- package/migrations/postgres/meta/0000_snapshot.json +606 -0
- package/migrations/postgres/meta/_journal.json +13 -0
- package/package.json +88 -0
- package/src/action-job.ts +201 -0
- package/src/action-manager.ts +166 -0
- package/src/action.ts +247 -0
- package/src/adapters/adapter.ts +969 -0
- package/src/adapters/postgres/drizzle.config.ts +11 -0
- package/src/adapters/postgres/pglite.ts +86 -0
- package/src/adapters/postgres/postgres.ts +1346 -0
- package/src/adapters/postgres/schema.default.ts +5 -0
- package/src/adapters/postgres/schema.ts +119 -0
- package/src/adapters/schemas.ts +320 -0
- package/src/client.ts +859 -0
- package/src/constants.ts +37 -0
- package/src/errors.ts +205 -0
- package/src/index.ts +14 -0
- package/src/server.ts +718 -0
- package/src/step-manager.ts +471 -0
- package/src/utils/checksum.ts +7 -0
- package/src/utils/p-retry.ts +213 -0
- package/src/utils/wait-for-abort.ts +40 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const JOB_STATUS_CREATED: "created";
|
|
2
|
+
export declare const JOB_STATUS_ACTIVE: "active";
|
|
3
|
+
export declare const JOB_STATUS_COMPLETED: "completed";
|
|
4
|
+
export declare const JOB_STATUS_FAILED: "failed";
|
|
5
|
+
export declare const JOB_STATUS_CANCELLED: "cancelled";
|
|
6
|
+
export declare const JOB_STATUSES: readonly ["created", "active", "completed", "failed", "cancelled"];
|
|
7
|
+
export type JobStatus = (typeof JOB_STATUSES)[number];
|
|
8
|
+
export declare const STEP_STATUS_ACTIVE: "active";
|
|
9
|
+
export declare const STEP_STATUS_COMPLETED: "completed";
|
|
10
|
+
export declare const STEP_STATUS_FAILED: "failed";
|
|
11
|
+
export declare const STEP_STATUS_CANCELLED: "cancelled";
|
|
12
|
+
export declare const STEP_STATUSES: readonly ["active", "completed", "failed", "cancelled"];
|
|
13
|
+
export type StepStatus = (typeof STEP_STATUSES)[number];
|
|
14
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB,EAAG,SAAkB,CAAA;AACpD,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAA;AAClD,eAAO,MAAM,oBAAoB,EAAG,WAAoB,CAAA;AACxD,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAA;AAClD,eAAO,MAAM,oBAAoB,EAAG,WAAoB,CAAA;AAExD,eAAO,MAAM,YAAY,oEAMf,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAMrD,eAAO,MAAM,kBAAkB,EAAG,QAAiB,CAAA;AACnD,eAAO,MAAM,qBAAqB,EAAG,WAAoB,CAAA;AACzD,eAAO,MAAM,kBAAkB,EAAG,QAAiB,CAAA;AACnD,eAAO,MAAM,qBAAqB,EAAG,WAAoB,CAAA;AAEzD,eAAO,MAAM,aAAa,yDAKhB,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const JOB_STATUS_CREATED = 'created';
|
|
2
|
+
export const JOB_STATUS_ACTIVE = 'active';
|
|
3
|
+
export const JOB_STATUS_COMPLETED = 'completed';
|
|
4
|
+
export const JOB_STATUS_FAILED = 'failed';
|
|
5
|
+
export const JOB_STATUS_CANCELLED = 'cancelled';
|
|
6
|
+
export const JOB_STATUSES = [
|
|
7
|
+
JOB_STATUS_CREATED,
|
|
8
|
+
JOB_STATUS_ACTIVE,
|
|
9
|
+
JOB_STATUS_COMPLETED,
|
|
10
|
+
JOB_STATUS_FAILED,
|
|
11
|
+
JOB_STATUS_CANCELLED,
|
|
12
|
+
];
|
|
13
|
+
export const STEP_STATUS_ACTIVE = 'active';
|
|
14
|
+
export const STEP_STATUS_COMPLETED = 'completed';
|
|
15
|
+
export const STEP_STATUS_FAILED = 'failed';
|
|
16
|
+
export const STEP_STATUS_CANCELLED = 'cancelled';
|
|
17
|
+
export const STEP_STATUSES = [
|
|
18
|
+
STEP_STATUS_ACTIVE,
|
|
19
|
+
STEP_STATUS_COMPLETED,
|
|
20
|
+
STEP_STATUS_FAILED,
|
|
21
|
+
STEP_STATUS_CANCELLED,
|
|
22
|
+
];
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare abstract class DuronError extends Error {
|
|
2
|
+
readonly cause?: unknown;
|
|
3
|
+
constructor(message: string, options?: {
|
|
4
|
+
cause?: unknown;
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
export declare class StepAlreadyExecutedError extends DuronError {
|
|
8
|
+
constructor(stepName: string, jobId: string, actionName: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class NonRetriableError extends DuronError {
|
|
11
|
+
}
|
|
12
|
+
export declare class ActionTimeoutError extends DuronError {
|
|
13
|
+
constructor(actionName: string, timeoutMs: number, options?: {
|
|
14
|
+
cause?: unknown;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export declare class StepTimeoutError extends DuronError {
|
|
18
|
+
constructor(stepName: string, jobId: string, timeoutMs: number, options?: {
|
|
19
|
+
cause?: unknown;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export declare class ActionCancelError extends DuronError {
|
|
23
|
+
constructor(actionName: string, jobId: string, options?: {
|
|
24
|
+
cause?: unknown;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export declare function isDuronError(error: unknown): error is DuronError;
|
|
28
|
+
export declare function isNonRetriableError(error: unknown): error is NonRetriableError;
|
|
29
|
+
export declare function isTimeoutError(error: unknown): error is ActionTimeoutError | StepTimeoutError;
|
|
30
|
+
export declare function isCancelError(error: unknown): error is ActionCancelError;
|
|
31
|
+
export type SerializableError = {
|
|
32
|
+
name: string;
|
|
33
|
+
message: string;
|
|
34
|
+
cause?: unknown;
|
|
35
|
+
stack?: string;
|
|
36
|
+
};
|
|
37
|
+
export declare function serializeError(error: unknown): {
|
|
38
|
+
name: string;
|
|
39
|
+
message: string;
|
|
40
|
+
cause?: unknown;
|
|
41
|
+
stack?: string;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA,8BAAsB,UAAW,SAAQ,KAAK;IAM5C,SAAyB,KAAK,CAAC,EAAE,OAAO,CAAA;gBAGtC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAMR,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB;CAWJ;AAKD,qBAAa,wBAAyB,SAAQ,UAAU;gBAQ1C,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAGhE;AAQD,qBAAa,iBAAkB,SAAQ,UAAU;CAEhD;AAKD,qBAAa,kBAAmB,SAAQ,UAAU;gBAS9C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB;CAIJ;AAKD,qBAAa,gBAAiB,SAAQ,UAAU;gBAU5C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB;CAIJ;AAKD,qBAAa,iBAAkB,SAAQ,UAAU;gBAS7C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB;CAIJ;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAKD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAKD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,GAAG,gBAAgB,CAE7F;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAExE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAgCA"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export class DuronError extends Error {
|
|
2
|
+
cause;
|
|
3
|
+
constructor(message, options) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.cause = options?.cause;
|
|
6
|
+
this.name = this.constructor.name;
|
|
7
|
+
if (Error.captureStackTrace) {
|
|
8
|
+
Error.captureStackTrace(this, this.constructor);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class StepAlreadyExecutedError extends DuronError {
|
|
13
|
+
constructor(stepName, jobId, actionName) {
|
|
14
|
+
super(`Step "${stepName}" has already been executed for job "${jobId}" and action "${actionName}"`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class NonRetriableError extends DuronError {
|
|
18
|
+
}
|
|
19
|
+
export class ActionTimeoutError extends DuronError {
|
|
20
|
+
constructor(actionName, timeoutMs, options) {
|
|
21
|
+
super(`Action "${actionName}" timed out after ${timeoutMs}ms`, options);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class StepTimeoutError extends DuronError {
|
|
25
|
+
constructor(stepName, jobId, timeoutMs, options) {
|
|
26
|
+
super(`Step "${stepName}" in job "${jobId}" timed out after ${timeoutMs}ms`, options);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class ActionCancelError extends DuronError {
|
|
30
|
+
constructor(actionName, jobId, options) {
|
|
31
|
+
super(`Action "${actionName}" in job "${jobId}" was cancelled`, options);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function isDuronError(error) {
|
|
35
|
+
return error instanceof DuronError;
|
|
36
|
+
}
|
|
37
|
+
export function isNonRetriableError(error) {
|
|
38
|
+
return error instanceof NonRetriableError || error instanceof ActionCancelError || error instanceof ActionTimeoutError;
|
|
39
|
+
}
|
|
40
|
+
export function isTimeoutError(error) {
|
|
41
|
+
return error instanceof ActionTimeoutError || error instanceof StepTimeoutError;
|
|
42
|
+
}
|
|
43
|
+
export function isCancelError(error) {
|
|
44
|
+
return error instanceof ActionCancelError;
|
|
45
|
+
}
|
|
46
|
+
export function serializeError(error) {
|
|
47
|
+
if (error instanceof StepTimeoutError || error instanceof ActionTimeoutError) {
|
|
48
|
+
return {
|
|
49
|
+
name: error.name,
|
|
50
|
+
message: error.message,
|
|
51
|
+
cause: error.cause,
|
|
52
|
+
stack: undefined,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (error instanceof DuronError) {
|
|
56
|
+
return {
|
|
57
|
+
name: error.name,
|
|
58
|
+
message: error.message,
|
|
59
|
+
cause: error.cause,
|
|
60
|
+
stack: error.stack,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (error instanceof Error) {
|
|
64
|
+
return {
|
|
65
|
+
name: error.name,
|
|
66
|
+
message: error.message,
|
|
67
|
+
cause: error.cause,
|
|
68
|
+
stack: error.stack,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
name: 'UnknownError',
|
|
73
|
+
message: String(error),
|
|
74
|
+
};
|
|
75
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Action } from './action.js';
|
|
2
|
+
import { Client, type ClientOptions } from './client.js';
|
|
3
|
+
export { defineAction } from './action.js';
|
|
4
|
+
export * from './constants.js';
|
|
5
|
+
export { NonRetriableError } from './errors.js';
|
|
6
|
+
export * from './server.js';
|
|
7
|
+
export declare const duron: <TActions extends Record<string, Action<any, any, TVariables>>, TVariables = Record<string, unknown>>(options: ClientOptions<TActions, TVariables>) => Client<TActions, TVariables>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,cAAc,aAAa,CAAA;AAE3B,eAAO,MAAM,KAAK,GAChB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAC7D,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEpC,SAAS,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,iCACA,CAAA"}
|
package/dist/index.js
ADDED